summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/base.php17
-rw-r--r--settings/admin.php1
-rw-r--r--settings/templates/admin.php22
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>