diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2016-11-03 14:11:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-03 14:11:37 +0100 |
commit | 7ba7949dc12cc444399a3681904a3d0dd2d2ee32 (patch) | |
tree | 4092955e6d75bd5e2dffc56890ea4001a01f5d12 | |
parent | b129adfb58eb98a37278dbd5a2f30b52c90cb4fc (diff) | |
parent | 074134638538fd95d484ccd041da9a96cdfb6b3c (diff) | |
download | nextcloud-server-7ba7949dc12cc444399a3681904a3d0dd2d2ee32.tar.gz nextcloud-server-7ba7949dc12cc444399a3681904a3d0dd2d2ee32.zip |
Merge pull request #1994 from nextcloud/proper-cron-hints
Show a hint for system based cron user name
-rw-r--r-- | lib/private/Settings/Admin/Server.php | 2 | ||||
-rw-r--r-- | settings/templates/admin/server.php | 17 | ||||
-rw-r--r-- | tests/lib/Settings/Admin/ServerTest.php | 4 |
3 files changed, 20 insertions, 3 deletions
diff --git a/lib/private/Settings/Admin/Server.php b/lib/private/Settings/Admin/Server.php index 6b381ab48ed..8b1477a0257 100644 --- a/lib/private/Settings/Admin/Server.php +++ b/lib/private/Settings/Admin/Server.php @@ -124,6 +124,8 @@ class Server implements ISettings { 'cron_log' => $this->config->getSystemValue('cron_log', true), 'lastcron' => $this->config->getAppValue('core', 'lastcron', false), 'cronErrors' => $this->config->getAppValue('core', 'cronErrors'), + 'cli_based_cron_possible' => function_exists('posix_getpwuid'), + 'cli_based_cron_user' => function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '', ]; return new TemplateResponse('settings', 'admin/server', $parameters, ''); diff --git a/settings/templates/admin/server.php b/settings/templates/admin/server.php index 02d247e1b18..430ca6ac8e2 100644 --- a/settings/templates/admin/server.php +++ b/settings/templates/admin/server.php @@ -201,9 +201,22 @@ <input type="radio" name="mode" value="cron" class="radio" id="backgroundjobs_cron" <?php if ($_['backgroundjobs_mode'] === "cron") { print_unescaped('checked="checked"'); - } ?>> + } + if (!$_['cli_based_cron_possible']) { + print_unescaped('disabled'); + }?>> <label for="backgroundjobs_cron">Cron</label><br/> - <em><?php p($l->t("Use system's cron service to call the cron.php file every 15 minutes.")); ?></em> + <em><?php p($l->t("Use system's cron service to call the cron.php file every 15 minutes.")); ?> + <?php if($_['cli_based_cron_possible']) { + p($l->t('The cron.php needs to be executed by the system user "%s".', [$_['cli_based_cron_user']])); + } else { + print_unescaped(str_replace( + ['{linkstart}', '{linkend}'], + ['<a href="http://php.net/manual/en/book.posix.php">', ' ↗</a>'], + $l->t('To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details.') + )); + } ?></em> + </p> </div> diff --git a/tests/lib/Settings/Admin/ServerTest.php b/tests/lib/Settings/Admin/ServerTest.php index 874422307e0..43892c408b0 100644 --- a/tests/lib/Settings/Admin/ServerTest.php +++ b/tests/lib/Settings/Admin/ServerTest.php @@ -136,7 +136,9 @@ class ServerTest extends TestCase { 'backgroundjobs_mode' => 'ajax', 'cron_log' => true, 'lastcron' => false, - 'cronErrors' => '' + 'cronErrors' => '', + 'cli_based_cron_possible' => true, + 'cli_based_cron_user' => function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '', // to not explode here because of posix extension not being disabled - which is already checked in the line above ], '' ); |