diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php index b70045d420b86..b3e77a6edf817 100644 --- a/apps/dav/appinfo/v1/carddav.php +++ b/apps/dav/appinfo/v1/carddav.php @@ -39,13 +39,11 @@ \OC::$server->getUserSession(), \OC::$server->getRequest(), \OC::$server->getTwoFactorAuthManager(), - \OC::$server->getBruteForceThrottler(), - 'principals/' + \OC::$server->getBruteForceThrottler() ); $principalBackend = new Principal( \OC::$server->getUserManager(), - \OC::$server->getGroupManager(), - 'principals/' + \OC::$server->getGroupManager() ); $db = \OC::$server->getDatabaseConnection(); $cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager()); @@ -53,14 +51,16 @@ $debugging = \OC::$server->getConfig()->getSystemValue('debug', false); // Root nodes -$principalCollection = new \Sabre\CalDAV\Principal\Collection($principalBackend); +$principalCollection = new \Sabre\CalDAV\Principal\Collection($principalBackend, 'principals/users/'); $principalCollection->disableListing = !$debugging; // Disable listing -$addressBookRoot = new AddressBookRoot($principalBackend, $cardDavBackend); +$addressBookRoot = new AddressBookRoot($principalBackend, $cardDavBackend, 'principals/users/'); $addressBookRoot->disableListing = !$debugging; // Disable listing +$principals = new \Sabre\DAV\SimpleCollection('principals', [$principalCollection]); + $nodes = array( - $principalCollection, + $principals, $addressBookRoot, ); diff --git a/apps/dav/lib/CardDAV/AddressBookRoot.php b/apps/dav/lib/CardDAV/AddressBookRoot.php index 88435165a8839..bcf14e1d2cd31 100644 --- a/apps/dav/lib/CardDAV/AddressBookRoot.php +++ b/apps/dav/lib/CardDAV/AddressBookRoot.php @@ -56,7 +56,7 @@ function getChildForPrincipal(array $principal) { function getName() { - if ($this->principalPrefix === 'principals') { + if ($this->principalPrefix === 'principals/users/') { return parent::getName(); } // Grabbing all the components of the principal path. diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php index 924322cdcee2c..5847728824ce9 100644 --- a/apps/dav/lib/Connector/Sabre/Principal.php +++ b/apps/dav/lib/Connector/Sabre/Principal.php @@ -81,6 +81,7 @@ public function __construct(IUserManager $userManager, */ public function getPrincipalsByPrefix($prefixPath) { $principals = []; + $prefixPath = trim($prefixPath, '/'); if ($prefixPath === $this->principalPrefix) { foreach($this->userManager->search('') as $user) { diff --git a/apps/dav/tests/travis/caldavtest/serverinfo-old-carddav-endpoint.xml b/apps/dav/tests/travis/caldavtest/serverinfo-old-carddav-endpoint.xml index bd9f83a481494..bf8c7d1029e32 100644 --- a/apps/dav/tests/travis/caldavtest/serverinfo-old-carddav-endpoint.xml +++ b/apps/dav/tests/travis/caldavtest/serverinfo-old-carddav-endpoint.xml @@ -188,6 +188,10 @@ $uidstype: __uids__ + + $userstype: + users + $groupstype: groups @@ -208,7 +212,7 @@ $principals_users: - $principalcollection: + $principalcollection:$userstype:/ $principals_groups: