diff options
-rw-r--r-- | lib/base.php | 17 | ||||
-rw-r--r-- | settings/admin.php | 1 | ||||
-rw-r--r-- | settings/templates/admin.php | 22 |
3 files changed, 39 insertions, 1 deletions
diff --git a/lib/base.php b/lib/base.php index a97b1b3dade..1f2e90deefd 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 = []; foreach ($errors as $error) { echo $error['error'] . "\n"; echo $error['hint'] . "\n\n"; + $staticErrors[] = [ + 'error' => (string) $error['error'], + 'hint' => (string) $error['hint'], + ]; } + + 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 7c7ca4cada7..95940db7282 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 b7ea77a993b..1608aa8123b 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -212,7 +212,29 @@ if ($_['suggestedOverwriteCliUrl']) { </div> <?php } + +if ($_['cronErrors']) { + ?> + <div class="section"> + <h2><?php p($l->t('Cronjob encountered misconfiguration'));?></h2> + + <span class="connectionwarning"> + <?php p($l->t('It was not possible to execute the cronjob via CLI. The following technical errors have appeared:')); ?> + <br/> + <ol> + <?php foreach(json_decode($_['cronErrors']) as $error) { if(isset($error->error)) {?> + <li><?php p($error->error) ?></li> + <ul><li><?php p($error->hint) ?></li></ul> + + <?php }};?> + </ol> + </span> + + </div> +<?php +} ?> + <div id="postsetupchecks" class="section"> <h2><?php p($l->t('Configuration Checks'));?></h2> <div class="loading"></div> |