Merge pull request #20537 from owncloud/add-internal-locking-to-new-webdav-endpoint

Add internal locking plugin
remotes/origin/fix-delete-homeidr-on-userdelete
Thomas Müller 9 years ago
commit 3869db1290
  1. 16
      apps/dav/lib/connector/sabre/lockplugin.php
  2. 2
      apps/dav/lib/connector/sabre/serverfactory.php
  3. 7
      apps/dav/lib/server.php

@ -38,18 +38,6 @@ class LockPlugin extends ServerPlugin {
*/
private $server;
/**
* @var \Sabre\DAV\Tree
*/
private $tree;
/**
* @param \Sabre\DAV\Tree $tree tree
*/
public function __construct(Tree $tree) {
$this->tree = $tree;
}
/**
* {@inheritdoc}
*/
@ -66,7 +54,7 @@ class LockPlugin extends ServerPlugin {
return;
}
try {
$node = $this->tree->getNodeForPath($request->getPath());
$node = $this->server->tree->getNodeForPath($request->getPath());
} catch (NotFound $e) {
return;
}
@ -84,7 +72,7 @@ class LockPlugin extends ServerPlugin {
return;
}
try {
$node = $this->tree->getNodeForPath($request->getPath());
$node = $this->server->tree->getNodeForPath($request->getPath());
} catch (NotFound $e) {
return;
}

@ -107,7 +107,7 @@ class ServerFactory {
// FIXME: The following line is a workaround for legacy components relying on being able to send a GET to /
$server->addPlugin(new \OCA\DAV\Connector\Sabre\DummyGetResponsePlugin());
$server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $this->logger));
$server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin($objectTree));
$server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
$server->addPlugin(new \OCA\DAV\Connector\Sabre\ListenerPlugin($this->dispatcher));
// Finder on OS X requires Class 2 WebDAV support (locking), since we do
// not provide locking we emulate it using a fake locking plugin.

@ -17,6 +17,9 @@ class Server {
public function __construct(IRequest $request, $baseUri) {
$this->request = $request;
$this->baseUri = $baseUri;
$logger = \OC::$server->getLogger();
$dispatcher = \OC::$server->getEventDispatcher();
$root = new RootCollection();
$this->server = new \OCA\DAV\Connector\Sabre\Server($root);
@ -32,6 +35,10 @@ class Server {
$this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
$this->server->addPlugin(new Plugin($authBackend, 'ownCloud'));
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\DummyGetResponsePlugin());
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
$this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ListenerPlugin($dispatcher));
// calendar plugins
$this->server->addPlugin(new \Sabre\CalDAV\Plugin());

Loading…
Cancel
Save