nextcloud/apps/dav/lib/rootcollection.php

50 lines
1.6 KiB
PHP
Raw Normal View History

<?php
namespace OCA\DAV;
2015-10-31 03:28:21 +03:00
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CardDAV\AddressBookRoot;
2015-10-30 18:05:25 +03:00
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Connector\Sabre\Principal;
2015-10-31 03:28:21 +03:00
use Sabre\CalDAV\CalendarRoot;
use Sabre\CalDAV\Principal\Collection;
use Sabre\DAV\SimpleCollection;
class RootCollection extends SimpleCollection {
public function __construct() {
$config = \OC::$server->getConfig();
2015-10-31 03:28:21 +03:00
$db = \OC::$server->getDatabaseConnection();
$principalBackend = new Principal(
2015-10-31 03:28:21 +03:00
$config,
\OC::$server->getUserManager()
);
// as soon as debug mode is enabled we allow listing of principals
$disableListing = !$config->getSystemValue('debug', false);
// setup the first level of the dav tree
$principalCollection = new Collection($principalBackend, 'principals/users');
$principalCollection->disableListing = $disableListing;
$filesCollection = new Files\RootCollection($principalBackend, 'principals/users');
$filesCollection->disableListing = $disableListing;
2015-10-31 03:28:21 +03:00
$caldavBackend = new CalDavBackend($db);
$calendarRoot = new CalendarRoot($principalBackend, $caldavBackend, 'principals/users');
2015-10-31 03:28:21 +03:00
$calendarRoot->disableListing = $disableListing;
$cardDavBackend = new CardDavBackend(\OC::$server->getDatabaseConnection(), $principalBackend);
$addressBookRoot = new AddressBookRoot($principalBackend, $cardDavBackend, 'principals/users');
2015-10-30 18:05:25 +03:00
$addressBookRoot->disableListing = $disableListing;
$children = [
new SimpleCollection('principals', [$principalCollection]),
2015-10-31 03:28:21 +03:00
$filesCollection,
$calendarRoot,
$addressBookRoot,
];
parent::__construct('root', $children);
}
}