Merge pull request #15510 from owncloud/cron-singleuser
block cron when in single user mode
This commit is contained in:
commit
a163243e31
5
cron.php
5
cron.php
|
@ -41,6 +41,11 @@ try {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (\OC::$server->getSystemConfig()->getValue('singleuser', false)) {
|
||||||
|
\OCP\Util::writeLog('cron', 'We are in admin only mode, skipping cron', \OCP\Util::DEBUG);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
// load all apps to get all api routes properly setup
|
// load all apps to get all api routes properly setup
|
||||||
OC_App::loadApps();
|
OC_App::loadApps();
|
||||||
|
|
||||||
|
|
26
lib/base.php
26
lib/base.php
|
@ -294,28 +294,38 @@ class OC {
|
||||||
header('Retry-After: 120');
|
header('Retry-After: 120');
|
||||||
|
|
||||||
// render error page
|
// render error page
|
||||||
$tmpl = new OC_Template('', 'update.user', 'guest');
|
$template = new OC_Template('', 'update.user', 'guest');
|
||||||
OC_Util::addscript('maintenance-check');
|
OC_Util::addscript('maintenance-check');
|
||||||
$tmpl->printPage();
|
$template->printPage();
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function checkSingleUserMode() {
|
public static function checkSingleUserMode($lockIfNoUserLoggedIn = false) {
|
||||||
|
if (!\OC::$server->getSystemConfig()->getValue('singleuser', false)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$user = OC_User::getUserSession()->getUser();
|
$user = OC_User::getUserSession()->getUser();
|
||||||
$group = OC_Group::getManager()->get('admin');
|
if ($user) {
|
||||||
if ($user && \OC::$server->getSystemConfig()->getValue('singleuser', false) && !$group->inGroup($user)) {
|
$group = \OC::$server->getGroupManager()->get('admin');
|
||||||
|
if ($group->inGroup($user)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(!$lockIfNoUserLoggedIn) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
// send http status 503
|
// send http status 503
|
||||||
header('HTTP/1.1 503 Service Temporarily Unavailable');
|
header('HTTP/1.1 503 Service Temporarily Unavailable');
|
||||||
header('Status: 503 Service Temporarily Unavailable');
|
header('Status: 503 Service Temporarily Unavailable');
|
||||||
header('Retry-After: 120');
|
header('Retry-After: 120');
|
||||||
|
|
||||||
// render error page
|
// render error page
|
||||||
$tmpl = new OC_Template('', 'singleuser.user', 'guest');
|
$template = new OC_Template('', 'singleuser.user', 'guest');
|
||||||
$tmpl->printPage();
|
$template->printPage();
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* check if the instance needs to preform an upgrade
|
* check if the instance needs to preform an upgrade
|
||||||
|
|
|
@ -60,6 +60,9 @@ class MaintenancePlugin extends \Sabre\DAV\ServerPlugin
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function checkMaintenanceMode() {
|
public function checkMaintenanceMode() {
|
||||||
|
if (\OC::$server->getSystemConfig()->getValue('singleuser', false)) {
|
||||||
|
throw new \Sabre\DAV\Exception\ServiceUnavailable();
|
||||||
|
}
|
||||||
if (\OC_Config::getValue('maintenance', false)) {
|
if (\OC_Config::getValue('maintenance', false)) {
|
||||||
throw new \Sabre\DAV\Exception\ServiceUnavailable();
|
throw new \Sabre\DAV\Exception\ServiceUnavailable();
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,9 @@
|
||||||
|
|
||||||
require_once '../lib/base.php';
|
require_once '../lib/base.php';
|
||||||
|
|
||||||
if (\OCP\Util::needUpgrade() || \OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
if (\OCP\Util::needUpgrade()
|
||||||
|
|| \OC::$server->getSystemConfig()->getValue('maintenance', false)
|
||||||
|
|| \OC::$server->getSystemConfig()->getValue('singleuser', false)) {
|
||||||
// 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
|
||||||
OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
|
OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
|
||||||
|
|
|
@ -37,7 +37,7 @@ try {
|
||||||
}
|
}
|
||||||
|
|
||||||
OC::checkMaintenanceMode();
|
OC::checkMaintenanceMode();
|
||||||
OC::checkSingleUserMode();
|
OC::checkSingleUserMode(true);
|
||||||
$request = \OC::$server->getRequest();
|
$request = \OC::$server->getRequest();
|
||||||
$pathInfo = $request->getPathInfo();
|
$pathInfo = $request->getPathInfo();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue