webdav returns "503 Service Unavailable" in case the ownCloud server is currently in maintenance mode.
parent
b69328e1d1
commit
ccdaec6296
@ -0,0 +1,22 @@ |
||||
<?php |
||||
/** |
||||
* ownCloud |
||||
* |
||||
* @author Thomas Müller |
||||
* @copyright 2013 Thomas Müller <thomas.mueller@tmit.eu> |
||||
* |
||||
* @license AGPL3 |
||||
*/ |
||||
|
||||
class Sabre_DAV_Exception_ServiceUnavailable extends Sabre_DAV_Exception { |
||||
|
||||
/** |
||||
* Returns the HTTP statuscode for this exception |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getHTTPCode() { |
||||
|
||||
return 503; |
||||
} |
||||
} |
||||
@ -0,0 +1,56 @@ |
||||
<?php |
||||
|
||||
/** |
||||
* ownCloud |
||||
* |
||||
* @author Thomas Müller |
||||
* @copyright 2013 Thomas Müller <thomas.mueller@tmit.eu> |
||||
* |
||||
* @license AGPL3 |
||||
*/ |
||||
|
||||
require 'ServiceUnavailable.php'; |
||||
|
||||
class OC_Connector_Sabre_MaintenancePlugin extends Sabre_DAV_ServerPlugin |
||||
{ |
||||
|
||||
/** |
||||
* Reference to main server object |
||||
* |
||||
* @var Sabre_DAV_Server |
||||
*/ |
||||
private $server; |
||||
|
||||
/** |
||||
* This initializes the plugin. |
||||
* |
||||
* This function is called by Sabre_DAV_Server, after |
||||
* addPlugin is called. |
||||
* |
||||
* This method should set up the required event subscriptions. |
||||
* |
||||
* @param Sabre_DAV_Server $server |
||||
* @return void |
||||
*/ |
||||
public function initialize(Sabre_DAV_Server $server) { |
||||
|
||||
$this->server = $server; |
||||
$this->server->subscribeEvent('beforeMethod', array($this, 'checkMaintenanceMode'), 10); |
||||
} |
||||
|
||||
/** |
||||
* 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 |
||||
* @internal param string $method |
||||
* @return bool |
||||
*/ |
||||
public function checkMaintenanceMode() { |
||||
if (OC_Config::getValue('maintenance', false)) { |
||||
throw new Sabre_DAV_Exception_ServiceUnavailable(); |
||||
} |
||||
|
||||
return true; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue