Make sure maintenance mode is always casted to bool
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
a11ef5134c
commit
0c77cd21f9
|
@ -78,7 +78,7 @@ class MaintenancePlugin extends ServerPlugin {
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function checkMaintenanceMode() {
|
public function checkMaintenanceMode() {
|
||||||
if ($this->config->getSystemValue('maintenance', false)) {
|
if ($this->config->getSystemValueBool('maintenance')) {
|
||||||
throw new ServiceUnavailable('System in maintenance mode.');
|
throw new ServiceUnavailable('System in maintenance mode.');
|
||||||
}
|
}
|
||||||
if (Util::needUpgrade()) {
|
if (Util::needUpgrade()) {
|
||||||
|
|
|
@ -75,7 +75,7 @@ class Application extends \OCP\AppFramework\App {
|
||||||
* register hooks
|
* register hooks
|
||||||
*/
|
*/
|
||||||
public function registerHooks() {
|
public function registerHooks() {
|
||||||
if (!$this->config->getSystemValue('maintenance', false)) {
|
if (!$this->config->getSystemValueBool('maintenance')) {
|
||||||
|
|
||||||
$container = $this->getContainer();
|
$container = $this->getContainer();
|
||||||
$server = $container->getServer();
|
$server = $container->getServer();
|
||||||
|
|
|
@ -89,7 +89,7 @@ class DecryptAll extends Command {
|
||||||
*/
|
*/
|
||||||
protected function forceMaintenanceAndTrashbin() {
|
protected function forceMaintenanceAndTrashbin() {
|
||||||
$this->wasTrashbinEnabled = $this->appManager->isEnabledForUser('files_trashbin');
|
$this->wasTrashbinEnabled = $this->appManager->isEnabledForUser('files_trashbin');
|
||||||
$this->wasMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false);
|
$this->wasMaintenanceModeEnabled = $this->config->getSystemValueBool('maintenance');
|
||||||
$this->config->setSystemValue('maintenance', true);
|
$this->config->setSystemValue('maintenance', true);
|
||||||
$this->appManager->disableApp('files_trashbin');
|
$this->appManager->disableApp('files_trashbin');
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ class EncryptAll extends Command {
|
||||||
*/
|
*/
|
||||||
protected function forceMaintenanceAndTrashbin() {
|
protected function forceMaintenanceAndTrashbin() {
|
||||||
$this->wasTrashbinEnabled = $this->appManager->isEnabledForUser('files_trashbin');
|
$this->wasTrashbinEnabled = $this->appManager->isEnabledForUser('files_trashbin');
|
||||||
$this->wasMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false);
|
$this->wasMaintenanceModeEnabled = $this->config->getSystemValueBool('maintenance');
|
||||||
$this->config->setSystemValue('maintenance', true);
|
$this->config->setSystemValue('maintenance', true);
|
||||||
$this->appManager->disableApp('files_trashbin');
|
$this->appManager->disableApp('files_trashbin');
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ class Mode extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output) {
|
protected function execute(InputInterface $input, OutputInterface $output) {
|
||||||
$maintenanceMode = $this->config->getSystemValue('maintenance', false);
|
$maintenanceMode = $this->config->getSystemValueBool('maintenance');
|
||||||
if ($input->getOption('on')) {
|
if ($input->getOption('on')) {
|
||||||
if ($maintenanceMode === false) {
|
if ($maintenanceMode === false) {
|
||||||
$this->config->setSystemValue('maintenance', true);
|
$this->config->setSystemValue('maintenance', true);
|
||||||
|
|
|
@ -106,7 +106,7 @@ class Repair extends Command {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$maintenanceMode = $this->config->getSystemValue('maintenance', false);
|
$maintenanceMode = $this->config->getSystemValueBool('maintenance');
|
||||||
$this->config->setSystemValue('maintenance', true);
|
$this->config->setSystemValue('maintenance', true);
|
||||||
|
|
||||||
$this->progress = new ProgressBar($output);
|
$this->progress = new ProgressBar($output);
|
||||||
|
|
|
@ -264,7 +264,7 @@ class Upgrade extends Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::ERROR_SUCCESS;
|
return self::ERROR_SUCCESS;
|
||||||
} else if($this->config->getSystemValue('maintenance', false)) {
|
} else if($this->config->getSystemValueBool('maintenance')) {
|
||||||
//Possible scenario: Nextcloud core is updated but an app failed
|
//Possible scenario: Nextcloud core is updated but an app failed
|
||||||
$output->writeln('<warning>Nextcloud is in maintenance mode</warning>');
|
$output->writeln('<warning>Nextcloud is in maintenance mode</warning>');
|
||||||
$output->write('<comment>Maybe an upgrade is already in process. Please check the '
|
$output->write('<comment>Maybe an upgrade is already in process. Please check the '
|
||||||
|
|
2
cron.php
2
cron.php
|
@ -44,7 +44,7 @@ try {
|
||||||
\OC::$server->getLogger()->debug('Update required, skipping cron', ['app' => 'cron']);
|
\OC::$server->getLogger()->debug('Update required, skipping cron', ['app' => 'cron']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if (\OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
if ((bool) \OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
||||||
\OC::$server->getLogger()->debug('We are in maintenance mode, skipping cron', ['app' => 'cron']);
|
\OC::$server->getLogger()->debug('We are in maintenance mode, skipping cron', ['app' => 'cron']);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -285,7 +285,7 @@ class OC {
|
||||||
|
|
||||||
public static function checkMaintenanceMode() {
|
public static function checkMaintenanceMode() {
|
||||||
// Allow ajax update script to execute without being stopped
|
// Allow ajax update script to execute without being stopped
|
||||||
if (\OC::$server->getSystemConfig()->getValue('maintenance', false) && OC::$SUBURI != '/core/ajax/update.php') {
|
if (((bool) \OC::$server->getSystemConfig()->getValue('maintenance', false)) && OC::$SUBURI != '/core/ajax/update.php') {
|
||||||
// send http status 503
|
// send http status 503
|
||||||
http_response_code(503);
|
http_response_code(503);
|
||||||
header('Retry-After: 120');
|
header('Retry-After: 120');
|
||||||
|
@ -938,7 +938,7 @@ class OC {
|
||||||
if (function_exists('opcache_reset')) {
|
if (function_exists('opcache_reset')) {
|
||||||
opcache_reset();
|
opcache_reset();
|
||||||
}
|
}
|
||||||
if (!$systemConfig->getValue('maintenance', false)) {
|
if (!((bool) $systemConfig->getValue('maintenance', false))) {
|
||||||
self::printUpgradePage($systemConfig);
|
self::printUpgradePage($systemConfig);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
@ -966,7 +966,7 @@ class OC {
|
||||||
|
|
||||||
// Load minimum set of apps
|
// Load minimum set of apps
|
||||||
if (!\OCP\Util::needUpgrade()
|
if (!\OCP\Util::needUpgrade()
|
||||||
&& !$systemConfig->getValue('maintenance', false)) {
|
&& !((bool) $systemConfig->getValue('maintenance', false))) {
|
||||||
// For logged-in users: Load everything
|
// For logged-in users: Load everything
|
||||||
if(\OC::$server->getUserSession()->isLoggedIn()) {
|
if(\OC::$server->getUserSession()->isLoggedIn()) {
|
||||||
OC_App::loadApps();
|
OC_App::loadApps();
|
||||||
|
@ -979,7 +979,7 @@ class OC {
|
||||||
|
|
||||||
if (!self::$CLI) {
|
if (!self::$CLI) {
|
||||||
try {
|
try {
|
||||||
if (!$systemConfig->getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
|
if (!((bool) $systemConfig->getValue('maintenance', false)) && !\OCP\Util::needUpgrade()) {
|
||||||
OC_App::loadApps(array('filesystem', 'logging'));
|
OC_App::loadApps(array('filesystem', 'logging'));
|
||||||
OC_App::loadApps();
|
OC_App::loadApps();
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ class Application {
|
||||||
if ($this->config->getSystemValue('installed', false)) {
|
if ($this->config->getSystemValue('installed', false)) {
|
||||||
if (\OCP\Util::needUpgrade()) {
|
if (\OCP\Util::needUpgrade()) {
|
||||||
throw new NeedsUpdateException();
|
throw new NeedsUpdateException();
|
||||||
} elseif ($this->config->getSystemValue('maintenance', false)) {
|
} elseif ($this->config->getSystemValueBool('maintenance')) {
|
||||||
$this->writeMaintenanceModeInfo($input, $output);
|
$this->writeMaintenanceModeInfo($input, $output);
|
||||||
} else {
|
} else {
|
||||||
OC_App::loadApps();
|
OC_App::loadApps();
|
||||||
|
|
|
@ -260,7 +260,7 @@ class Router implements IRouter {
|
||||||
$this->loadRoutes($app);
|
$this->loadRoutes($app);
|
||||||
} else if (substr($url, 0, 6) === '/core/' or substr($url, 0, 10) === '/settings/') {
|
} else if (substr($url, 0, 6) === '/core/' or substr($url, 0, 10) === '/settings/') {
|
||||||
\OC::$REQUESTEDAPP = $url;
|
\OC::$REQUESTEDAPP = $url;
|
||||||
if (!\OC::$server->getConfig()->getSystemValue('maintenance', false) && !Util::needUpgrade()) {
|
if (!\OC::$server->getConfig()->getSystemValueBool('maintenance') && !Util::needUpgrade()) {
|
||||||
\OC_App::loadApps();
|
\OC_App::loadApps();
|
||||||
}
|
}
|
||||||
$this->loadRoutes('core');
|
$this->loadRoutes('core');
|
||||||
|
|
|
@ -104,7 +104,7 @@ class Updater extends BasicEmitter {
|
||||||
$this->emit('\OC\Updater', 'setDebugLogLevel', [ $logLevel, $this->logLevelNames[$logLevel] ]);
|
$this->emit('\OC\Updater', 'setDebugLogLevel', [ $logLevel, $this->logLevelNames[$logLevel] ]);
|
||||||
$this->config->setSystemValue('loglevel', ILogger::DEBUG);
|
$this->config->setSystemValue('loglevel', ILogger::DEBUG);
|
||||||
|
|
||||||
$wasMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false);
|
$wasMaintenanceModeEnabled = $this->config->getSystemValueBool('maintenance');
|
||||||
|
|
||||||
if(!$wasMaintenanceModeEnabled) {
|
if(!$wasMaintenanceModeEnabled) {
|
||||||
$this->config->setSystemValue('maintenance', true);
|
$this->config->setSystemValue('maintenance', true);
|
||||||
|
@ -614,4 +614,3 @@ class Updater extends BasicEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ class OC_App {
|
||||||
* if $types is set to non-empty array, only apps of those types will be loaded
|
* if $types is set to non-empty array, only apps of those types will be loaded
|
||||||
*/
|
*/
|
||||||
public static function loadApps(array $types = []): bool {
|
public static function loadApps(array $types = []): bool {
|
||||||
if (\OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
if ((bool) \OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Load the enabled apps here
|
// Load the enabled apps here
|
||||||
|
|
|
@ -33,7 +33,7 @@ require_once __DIR__ . '/../lib/versioncheck.php';
|
||||||
require_once __DIR__ . '/../lib/base.php';
|
require_once __DIR__ . '/../lib/base.php';
|
||||||
|
|
||||||
if (\OCP\Util::needUpgrade()
|
if (\OCP\Util::needUpgrade()
|
||||||
|| \OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
|| \OC::$server->getConfig()->getSystemValueBool('maintenance')) {
|
||||||
// since the behavior of apps or remotes are unpredictable during
|
// since the behavior of apps or remotes are unpredictable during
|
||||||
// an upgrade, return a 503 directly
|
// an upgrade, return a 503 directly
|
||||||
http_response_code(503);
|
http_response_code(503);
|
||||||
|
@ -103,4 +103,3 @@ try {
|
||||||
.' http://www.freedesktop.org/wiki/Specifications/open-collaboration-services.'."\n";
|
.' http://www.freedesktop.org/wiki/Specifications/open-collaboration-services.'."\n";
|
||||||
OC_API::respond(new \OC\OCS\Result(null, \OCP\API::RESPOND_NOT_FOUND, $txt), $format);
|
OC_API::respond(new \OC\OCS\Result(null, \OCP\API::RESPOND_NOT_FOUND, $txt), $format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue