Do not load calendar/addressbook plugins if not needed
Fixes #6711
Based on f0fb21cf35
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
4c1f88efb1
commit
ed0069b8e6
|
@ -80,7 +80,6 @@ class Server {
|
||||||
$this->baseUri = $baseUri;
|
$this->baseUri = $baseUri;
|
||||||
$logger = \OC::$server->getLogger();
|
$logger = \OC::$server->getLogger();
|
||||||
$dispatcher = \OC::$server->getEventDispatcher();
|
$dispatcher = \OC::$server->getEventDispatcher();
|
||||||
$sendInvitations = \OC::$server->getConfig()->getAppValue('dav', 'sendInvitations', 'yes') === 'yes';
|
|
||||||
|
|
||||||
$root = new RootCollection();
|
$root = new RootCollection();
|
||||||
$this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
|
$this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
|
||||||
|
@ -139,24 +138,28 @@ class Server {
|
||||||
$this->server->addPlugin($acl);
|
$this->server->addPlugin($acl);
|
||||||
|
|
||||||
// calendar plugins
|
// calendar plugins
|
||||||
$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
|
if ($this->requestIsForSubtree('calendars')) {
|
||||||
$this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
|
$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
|
||||||
$this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
|
$this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
|
||||||
if ($sendInvitations) {
|
$this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
|
||||||
$this->server->addPlugin(\OC::$server->query(\OCA\DAV\CalDAV\Schedule\IMipPlugin::class));
|
if (\OC::$server->getConfig()->getAppValue('dav', 'sendInvitations', 'yes') === 'yes') {
|
||||||
|
$this->server->addPlugin(\OC::$server->query(\OCA\DAV\CalDAV\Schedule\IMipPlugin::class));
|
||||||
|
}
|
||||||
|
$this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
|
||||||
|
$this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
|
||||||
|
$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
|
||||||
|
$this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
|
||||||
|
\OC::$server->getConfig(),
|
||||||
|
\OC::$server->getURLGenerator()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
$this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
|
|
||||||
$this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
|
|
||||||
$this->server->addPlugin(new DAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
|
|
||||||
$this->server->addPlugin(new \OCA\DAV\CalDAV\Publishing\PublishPlugin(
|
|
||||||
\OC::$server->getConfig(),
|
|
||||||
\OC::$server->getURLGenerator()
|
|
||||||
));
|
|
||||||
|
|
||||||
// addressbook plugins
|
// addressbook plugins
|
||||||
$this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin());
|
if ($this->requestIsForSubtree('addressbooks')) {
|
||||||
$this->server->addPlugin(new VCFExportPlugin());
|
$this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin());
|
||||||
$this->server->addPlugin(new ImageExportPlugin(new PhotoCache(\OC::$server->getAppDataDir('dav-photocache'))));
|
$this->server->addPlugin(new VCFExportPlugin());
|
||||||
|
$this->server->addPlugin(new ImageExportPlugin(new PhotoCache(\OC::$server->getAppDataDir('dav-photocache'))));
|
||||||
|
}
|
||||||
|
|
||||||
// system tags plugins
|
// system tags plugins
|
||||||
$this->server->addPlugin(new SystemTagPlugin(
|
$this->server->addPlugin(new SystemTagPlugin(
|
||||||
|
@ -282,4 +285,13 @@ class Server {
|
||||||
public function exec() {
|
public function exec() {
|
||||||
$this->server->exec();
|
$this->server->exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $subTree
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
private function requestIsForSubtree($subTree) {
|
||||||
|
$subTree = trim($subTree, " /");
|
||||||
|
return strpos($this->server->getRequestUri(), "$subTree/") === 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue