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;
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;