diff --git a/lib/base.php b/lib/base.php index a97b1b3dad..fb93b331d1 100644 --- a/lib/base.php +++ b/lib/base.php @@ -575,15 +575,30 @@ class OC { $errors = OC_Util::checkServer(\OC::$server->getConfig()); if (count($errors) > 0) { if (self::$CLI) { + // Convert l10n string into regular string for usage in database + $staticErrors = []; + $i = 0; foreach ($errors as $error) { echo $error['error'] . "\n"; echo $error['hint'] . "\n\n"; + $staticErrors[$i]['error'] = (string) $error['error']; + $staticErrors[$i]['hint'] = (string) $error['hint']; + $i++; } + + try { + \OC::$server->getConfig()->setAppValue('core', 'cronErrors', json_encode($staticErrors)); + } catch(\Exception $e) { + echo('Writing to database failed'); + } + exit(); } else { OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE); OC_Template::printGuestPage('', 'error', array('errors' => $errors)); + exit; } - exit; + } elseif(self::$CLI && \OC::$server->getConfig()->getSystemValue('installed', false)) { + \OC::$server->getConfig()->deleteAppValue('core', 'cronErrors'); } //try to set the session lifetime diff --git a/settings/admin.php b/settings/admin.php index 7c7ca4cada..95940db728 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -80,6 +80,7 @@ $template->assign('allowMailNotification', $appConfig->getValue('core', 'shareap $template->assign('onlyShareWithGroupMembers', \OC\Share\Share::shareWithGroupMembersOnly()); $databaseOverload = (strpos(\OCP\Config::getSystemValue('dbtype'), 'sqlite') !== false); $template->assign('databaseOverload', $databaseOverload); +$template->assign('cronErrors', $appConfig->getValue('core', 'cronErrors')); // warn if Windows is used $template->assign('WindowsWarning', OC_Util::runningOnWindows()); diff --git a/settings/templates/admin.php b/settings/templates/admin.php index a82d5ee854..abb33bbca1 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -212,7 +212,29 @@ if ($_['suggestedOverwriteCliUrl']) { +
+

t('Cronjob encountered misconfiguration'));?>

+ + + t('It was not possible to execute the cronjob via CLI. The following technical errors have appeared:')); ?> +
+
    + error)) {?> +
  1. error) ?>
  2. +
    • hint) ?>
    + + +
+
+ +
+ +

t('Configuration Checks'));?>