diff options
author | Robin Appelman <icewind@owncloud.com> | 2015-08-07 17:36:14 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2015-08-11 14:43:46 +0200 |
commit | b0c8654f9eb8cd71aa575d3eb760fceb2a3942b1 (patch) | |
tree | 946ac403dff65d86bda6ce5b6ac1681438abc848 /apps | |
parent | 8c5302847b9ac3d491c1b62411e62f509573fe7a (diff) | |
download | nextcloud-server-b0c8654f9eb8cd71aa575d3eb760fceb2a3942b1.tar.gz nextcloud-server-b0c8654f9eb8cd71aa575d3eb760fceb2a3942b1.zip |
split out creating the sabre dav server to it's own factory
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/appinfo/remote.php | 56 | ||||
-rw-r--r-- | apps/files_sharing/publicwebdav.php | 42 |
2 files changed, 26 insertions, 72 deletions
diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php index fff3332ef49..36479ae13d0 100644 --- a/apps/files/appinfo/remote.php +++ b/apps/files/appinfo/remote.php @@ -33,51 +33,23 @@ set_time_limit(0); // Turn off output buffering to prevent memory problems \OC_Util::obEnd(); +$serverFactory = new \OC\Connector\Sabre\ServerFactory( + \OC::$server->getConfig(), + \OC::$server->getLogger(), + \OC::$server->getDatabaseConnection(), + \OC::$server->getUserSession(), + \OC::$server->getMountManager(), + \OC::$server->getTagManager() +); + // Backends $authBackend = new \OC\Connector\Sabre\Auth(); +$requestUri = \OC::$server->getRequest()->getRequestUri(); -// Fire up server -$objectTree = new \OC\Connector\Sabre\ObjectTree(); -$server = new \OC\Connector\Sabre\Server($objectTree); -// Set URL explicitly due to reverse-proxy situations -$server->httpRequest->setUrl(\OC::$server->getRequest()->getRequestUri()); -$server->setBaseUri($baseuri); - -// Load plugins -$defaults = new OC_Defaults(); -$server->addPlugin(new \OC\Connector\Sabre\BlockLegacyClientPlugin(\OC::$server->getConfig())); -$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, $defaults->getName())); -// FIXME: The following line is a workaround for legacy components relying on being able to send a GET to / -$server->addPlugin(new \OC\Connector\Sabre\DummyGetResponsePlugin()); -$server->addPlugin(new \OC\Connector\Sabre\FilesPlugin($objectTree)); -$server->addPlugin(new \OC\Connector\Sabre\MaintenancePlugin(\OC::$server->getConfig())); -$server->addPlugin(new \OC\Connector\Sabre\ExceptionLoggerPlugin('webdav', \OC::$server->getLogger())); - -// wait with registering these until auth is handled and the filesystem is setup -$server->on('beforeMethod', function () use ($server, $objectTree) { - $view = \OC\Files\Filesystem::getView(); - $rootInfo = $view->getFileInfo(''); - - // Create ownCloud Dir - $mountManager = \OC\Files\Filesystem::getMountManager(); - $rootDir = new \OC\Connector\Sabre\Directory($view, $rootInfo); - $objectTree->init($rootDir, $view, $mountManager); - - $server->addPlugin(new \OC\Connector\Sabre\TagsPlugin($objectTree, \OC::$server->getTagManager())); - $server->addPlugin(new \OC\Connector\Sabre\QuotaPlugin($view)); - - // custom properties plugin must be the last one - $server->addPlugin( - new \Sabre\DAV\PropertyStorage\Plugin( - new \OC\Connector\Sabre\CustomPropertiesBackend( - $objectTree, - \OC::$server->getDatabaseConnection(), - \OC::$server->getUserSession()->getUser() - ) - ) - ); - $server->addPlugin(new \OC\Connector\Sabre\CopyEtagHeaderPlugin()); -}, 30); // priority 30: after auth (10) and acl(20), before lock(50) and handling the request +$server = $serverFactory->createServer($baseuri, $requestUri, $authBackend, function() { + // use the view for the logged in user + return \OC\Files\Filesystem::getView(); +}); // And off we go! $server->exec(); diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php index 5bde908109d..eec158dd4b6 100644 --- a/apps/files_sharing/publicwebdav.php +++ b/apps/files_sharing/publicwebdav.php @@ -33,24 +33,18 @@ OC_Util::obEnd(); // Backends $authBackend = new OCA\Files_Sharing\Connector\PublicAuth(\OC::$server->getConfig()); -// Fire up server -$objectTree = new \OC\Connector\Sabre\ObjectTree(); -$server = new \OC\Connector\Sabre\Server($objectTree); -// Set URL explicitly due to reverse-proxy situations -$server->httpRequest->setUrl(\OC::$server->getRequest()->getRequestUri()); -$server->setBaseUri($baseuri); +$serverFactory = new \OC\Connector\Sabre\ServerFactory( + \OC::$server->getConfig(), + \OC::$server->getLogger(), + \OC::$server->getDatabaseConnection(), + \OC::$server->getUserSession(), + \OC::$server->getMountManager(), + \OC::$server->getTagManager() +); -// Load plugins -$defaults = new OC_Defaults(); -$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, $defaults->getName())); -// FIXME: The following line is a workaround for legacy components relying on being able to send a GET to / -$server->addPlugin(new \OC\Connector\Sabre\DummyGetResponsePlugin()); -$server->addPlugin(new \OC\Connector\Sabre\FilesPlugin($objectTree, true)); -$server->addPlugin(new \OC\Connector\Sabre\MaintenancePlugin(\OC::$server->getConfig())); -$server->addPlugin(new \OC\Connector\Sabre\ExceptionLoggerPlugin('webdav', \OC::$server->getLogger())); +$requestUri = \OC::$server->getRequest()->getRequestUri(); -// wait with registering these until auth is handled and the filesystem is setup -$server->on('beforeMethod', function () use ($server, $objectTree, $authBackend) { +$server = $serverFactory->createServer($baseuri, $requestUri, $authBackend, function () use ($authBackend) { if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false) { // this is what is thrown when trying to access a non-existing share throw new \Sabre\DAV\Exception\NotAuthenticated(); @@ -72,20 +66,8 @@ $server->on('beforeMethod', function () use ($server, $objectTree, $authBackend) $ownerView = \OC\Files\Filesystem::getView(); $path = $ownerView->getPath($fileId); - $view = new \OC\Files\View($ownerView->getAbsolutePath($path)); - $rootInfo = $view->getFileInfo(''); - - // Create ownCloud Dir - if ($rootInfo->getType() === 'dir') { - $root = new \OC\Connector\Sabre\Directory($view, $rootInfo); - } else { - $root = new \OC\Connector\Sabre\File($view, $rootInfo); - } - $mountManager = \OC\Files\Filesystem::getMountManager(); - $objectTree->init($root, $view, $mountManager); - - $server->addPlugin(new \OC\Connector\Sabre\QuotaPlugin($view)); -}, 30); // priority 30: after auth (10) and acl(20), before lock(50) and handling the request + return new \OC\Files\View($ownerView->getAbsolutePath($path)); +}); // And off we go! $server->exec(); |