Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v29.0.0beta1
@@ -88,6 +88,7 @@ return array( | |||
'OCA\\Settings\\SetupChecks\\ForwardedForHeaders' => $baseDir . '/../lib/SetupChecks/ForwardedForHeaders.php', | |||
'OCA\\Settings\\SetupChecks\\InternetConnectivity' => $baseDir . '/../lib/SetupChecks/InternetConnectivity.php', | |||
'OCA\\Settings\\SetupChecks\\LegacySSEKeyFormat' => $baseDir . '/../lib/SetupChecks/LegacySSEKeyFormat.php', | |||
'OCA\\Settings\\SetupChecks\\MaintenanceWindowStart' => $baseDir . '/../lib/SetupChecks/MaintenanceWindowStart.php', | |||
'OCA\\Settings\\SetupChecks\\MemcacheConfigured' => $baseDir . '/../lib/SetupChecks/MemcacheConfigured.php', | |||
'OCA\\Settings\\SetupChecks\\PhpDefaultCharset' => $baseDir . '/../lib/SetupChecks/PhpDefaultCharset.php', | |||
'OCA\\Settings\\SetupChecks\\PhpFreetypeSupport' => $baseDir . '/../lib/SetupChecks/PhpFreetypeSupport.php', |
@@ -103,6 +103,7 @@ class ComposerStaticInitSettings | |||
'OCA\\Settings\\SetupChecks\\ForwardedForHeaders' => __DIR__ . '/..' . '/../lib/SetupChecks/ForwardedForHeaders.php', | |||
'OCA\\Settings\\SetupChecks\\InternetConnectivity' => __DIR__ . '/..' . '/../lib/SetupChecks/InternetConnectivity.php', | |||
'OCA\\Settings\\SetupChecks\\LegacySSEKeyFormat' => __DIR__ . '/..' . '/../lib/SetupChecks/LegacySSEKeyFormat.php', | |||
'OCA\\Settings\\SetupChecks\\MaintenanceWindowStart' => __DIR__ . '/..' . '/../lib/SetupChecks/MaintenanceWindowStart.php', | |||
'OCA\\Settings\\SetupChecks\\MemcacheConfigured' => __DIR__ . '/..' . '/../lib/SetupChecks/MemcacheConfigured.php', | |||
'OCA\\Settings\\SetupChecks\\PhpDefaultCharset' => __DIR__ . '/..' . '/../lib/SetupChecks/PhpDefaultCharset.php', | |||
'OCA\\Settings\\SetupChecks\\PhpFreetypeSupport' => __DIR__ . '/..' . '/../lib/SetupChecks/PhpFreetypeSupport.php', |
@@ -60,6 +60,7 @@ use OCA\Settings\SetupChecks\FileLocking; | |||
use OCA\Settings\SetupChecks\ForwardedForHeaders; | |||
use OCA\Settings\SetupChecks\InternetConnectivity; | |||
use OCA\Settings\SetupChecks\LegacySSEKeyFormat; | |||
use OCA\Settings\SetupChecks\MaintenanceWindowStart; | |||
use OCA\Settings\SetupChecks\MemcacheConfigured; | |||
use OCA\Settings\SetupChecks\PhpDefaultCharset; | |||
use OCA\Settings\SetupChecks\PhpFreetypeSupport; | |||
@@ -174,6 +175,7 @@ class Application extends App implements IBootstrap { | |||
$context->registerSetupCheck(ForwardedForHeaders::class); | |||
$context->registerSetupCheck(InternetConnectivity::class); | |||
$context->registerSetupCheck(LegacySSEKeyFormat::class); | |||
$context->registerSetupCheck(MaintenanceWindowStart::class); | |||
$context->registerSetupCheck(MemcacheConfigured::class); | |||
$context->registerSetupCheck(PhpDefaultCharset::class); | |||
$context->registerSetupCheck(PhpFreetypeSupport::class); |
@@ -0,0 +1,70 @@ | |||
<?php | |||
declare(strict_types=1); | |||
/** | |||
* @copyright Copyright (c) 2023 Joas Schilling <coding@schilljs.com> | |||
* | |||
* @author Joas Schilling <coding@schilljs.com> | |||
* | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
namespace OCA\Settings\SetupChecks; | |||
use OCP\IConfig; | |||
use OCP\IL10N; | |||
use OCP\IURLGenerator; | |||
use OCP\SetupCheck\ISetupCheck; | |||
use OCP\SetupCheck\SetupResult; | |||
class MaintenanceWindowStart implements ISetupCheck { | |||
public function __construct( | |||
private IL10N $l10n, | |||
private IURLGenerator $urlGenerator, | |||
private IConfig $config, | |||
) { | |||
} | |||
public function getCategory(): string { | |||
return 'system'; | |||
} | |||
public function getName(): string { | |||
return $this->l10n->t('Maintenance window start'); | |||
} | |||
public function run(): SetupResult { | |||
$configValue = $this->config->getSystemValue('maintenance_window_start', null); | |||
if ($configValue === null) { | |||
return SetupResult::warning( | |||
$this->l10n->t('Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks.'), | |||
$this->urlGenerator->linkToDocs('admin-background-jobs') | |||
); | |||
} | |||
$startValue = (int) $configValue; | |||
$endValue = ($startValue + 6) % 24; | |||
return SetupResult::success( | |||
str_replace( | |||
['{start}', '{end}'], | |||
[$startValue, $endValue], | |||
$this->l10n->t('Maintenance window to execute heavy background jobs is between {start}:00 UTC and {end}:00 UTC') | |||
) | |||
); | |||
} | |||
} |