|
|
|
@ -25,13 +25,16 @@ |
|
|
|
|
|
|
|
|
|
namespace OC\Connector\Sabre; |
|
|
|
|
|
|
|
|
|
class MaintenancePlugin extends \Sabre\DAV\ServerPlugin |
|
|
|
|
{ |
|
|
|
|
use Sabre\DAV\Exception\ServiceUnavailable; |
|
|
|
|
use Sabre\DAV\Server; |
|
|
|
|
use Sabre\DAV\ServerPlugin; |
|
|
|
|
|
|
|
|
|
class MaintenancePlugin extends ServerPlugin { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Reference to main server object |
|
|
|
|
* |
|
|
|
|
* @var \Sabre\DAV\Server |
|
|
|
|
* @var Server |
|
|
|
|
*/ |
|
|
|
|
private $server; |
|
|
|
|
|
|
|
|
@ -43,11 +46,10 @@ class MaintenancePlugin extends \Sabre\DAV\ServerPlugin |
|
|
|
|
* |
|
|
|
|
* This method should set up the required event subscriptions. |
|
|
|
|
* |
|
|
|
|
* @param \Sabre\DAV\Server $server |
|
|
|
|
* @param Server $server |
|
|
|
|
* @return void |
|
|
|
|
*/ |
|
|
|
|
public function initialize(\Sabre\DAV\Server $server) { |
|
|
|
|
|
|
|
|
|
public function initialize(Server $server) { |
|
|
|
|
$this->server = $server; |
|
|
|
|
$this->server->on('beforeMethod', array($this, 'checkMaintenanceMode'), 10); |
|
|
|
|
} |
|
|
|
@ -56,19 +58,19 @@ class MaintenancePlugin extends \Sabre\DAV\ServerPlugin |
|
|
|
|
* This method is called before any HTTP method and returns http status code 503 |
|
|
|
|
* in case the system is in maintenance mode. |
|
|
|
|
* |
|
|
|
|
* @throws \Sabre\DAV\Exception\ServiceUnavailable |
|
|
|
|
* @throws ServiceUnavailable |
|
|
|
|
* @internal param string $method |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
public function checkMaintenanceMode() { |
|
|
|
|
if (\OC::$server->getSystemConfig()->getValue('singleuser', false)) { |
|
|
|
|
throw new \Sabre\DAV\Exception\ServiceUnavailable(); |
|
|
|
|
throw new ServiceUnavailable('System in single user mode.'); |
|
|
|
|
} |
|
|
|
|
if (\OC_Config::getValue('maintenance', false)) { |
|
|
|
|
throw new \Sabre\DAV\Exception\ServiceUnavailable(); |
|
|
|
|
if (\OC::$server->getSystemConfig()->getValue('maintenance', false)) { |
|
|
|
|
throw new ServiceUnavailable('System in maintenance mode.'); |
|
|
|
|
} |
|
|
|
|
if (\OC::checkUpgrade(false)) { |
|
|
|
|
throw new \Sabre\DAV\Exception\ServiceUnavailable('Upgrade needed'); |
|
|
|
|
throw new ServiceUnavailable('Upgrade needed'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|