Merge pull request #17226 from owncloud/webdav-add-message-on-maintenance

In case of maintenance we should add a message to the exception
This commit is contained in:
Morris Jobke 2015-06-29 14:11:36 +02:00
commit c57fb19b2f
1 changed files with 13 additions and 11 deletions

View File

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