aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/rootcollection.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/lib/rootcollection.php')
-rw-r--r--apps/dav/lib/rootcollection.php24
1 files changed, 15 insertions, 9 deletions
diff --git a/apps/dav/lib/rootcollection.php b/apps/dav/lib/rootcollection.php
index 96cc2bbc46a..2261712200a 100644
--- a/apps/dav/lib/rootcollection.php
+++ b/apps/dav/lib/rootcollection.php
@@ -6,6 +6,7 @@ use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CardDAV\AddressBookRoot;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Connector\Sabre\Principal;
+use OCA\DAV\DAV\GroupPrincipalBackend;
use OCA\DAV\DAV\SystemPrincipalBackend;
use Sabre\CalDAV\CalendarRoot;
use Sabre\CalDAV\Principal\Collection;
@@ -16,22 +17,26 @@ class RootCollection extends SimpleCollection {
public function __construct() {
$config = \OC::$server->getConfig();
$db = \OC::$server->getDatabaseConnection();
- $principalBackend = new Principal(
- $config,
- \OC::$server->getUserManager()
+ $userPrincipalBackend = new Principal(
+ \OC::$server->getUserManager()
+ );
+ $groupPrincipalBackend = new GroupPrincipalBackend(
+ \OC::$server->getGroupManager()
);
// 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
- $userPrincipals = new Collection($principalBackend, 'principals/users');
+ $userPrincipals = new Collection($userPrincipalBackend, 'principals/users');
$userPrincipals->disableListing = $disableListing;
+ $groupPrincipals = new Collection($groupPrincipalBackend, 'principals/groups');
+ $groupPrincipals->disableListing = $disableListing;
$systemPrincipals = new Collection(new SystemPrincipalBackend(), 'principals/system');
$systemPrincipals->disableListing = $disableListing;
- $filesCollection = new Files\RootCollection($principalBackend, 'principals/users');
+ $filesCollection = new Files\RootCollection($userPrincipalBackend, 'principals/users');
$filesCollection->disableListing = $disableListing;
$caldavBackend = new CalDavBackend($db);
- $calendarRoot = new CalendarRoot($principalBackend, $caldavBackend, 'principals/users');
+ $calendarRoot = new CalendarRoot($userPrincipalBackend, $caldavBackend, 'principals/users');
$calendarRoot->disableListing = $disableListing;
$systemTagCollection = new SystemTag\SystemTagsByIdCollection(
\OC::$server->getSystemTagManager()
@@ -41,17 +46,18 @@ class RootCollection extends SimpleCollection {
\OC::$server->getSystemTagObjectMapper()
);
- $usersCardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getLogger());
- $usersAddressBookRoot = new AddressBookRoot($principalBackend, $usersCardDavBackend, 'principals/users');
+ $usersCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, \OC::$server->getLogger());
+ $usersAddressBookRoot = new AddressBookRoot($userPrincipalBackend, $usersCardDavBackend, 'principals/users');
$usersAddressBookRoot->disableListing = $disableListing;
- $systemCardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getLogger());
+ $systemCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, \OC::$server->getLogger());
$systemAddressBookRoot = new AddressBookRoot(new SystemPrincipalBackend(), $systemCardDavBackend, 'principals/system');
$systemAddressBookRoot->disableListing = $disableListing;
$children = [
new SimpleCollection('principals', [
$userPrincipals,
+ $groupPrincipals,
$systemPrincipals]),
$filesCollection,
$calendarRoot,