Skip to content
Snippets Groups Projects
Commit ccdaec62 authored by Thomas Müller's avatar Thomas Müller
Browse files

webdav returns "503 Service Unavailable" in case the ownCloud server is...

webdav returns "503 Service Unavailable" in case the ownCloud server is currently in maintenance mode.
parent b69328e1
Branches
No related tags found
No related merge requests found
......@@ -45,6 +45,7 @@ $server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend, 'ownCloud'));
$server->addPlugin(new Sabre_DAV_Locks_Plugin($lockBackend));
$server->addPlugin(new Sabre_DAV_Browser_Plugin(false)); // Show something in the Browser, but no upload
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin());
$server->addPlugin(new OC_Connector_Sabre_MaintenancePlugin());
// And off we go!
$server->exec();
<?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;
}
}
<?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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment