diff --git a/apps/dav/lib/carddav/plugin.php b/apps/dav/lib/carddav/plugin.php index d94dce1db0e5..e02cc5686b8e 100644 --- a/apps/dav/lib/carddav/plugin.php +++ b/apps/dav/lib/carddav/plugin.php @@ -46,6 +46,10 @@ protected function getAddressbookHomeForPrincipal($principal) { list(, $principalId) = URLUtil::splitPath($principal); return self::ADDRESSBOOK_ROOT . '/users/' . $principalId; } + if (strrpos($principal, 'principals/groups', -strlen($principal)) !== false) { + list(, $principalId) = URLUtil::splitPath($principal); + return self::ADDRESSBOOK_ROOT . '/groups/' . $principalId; + } if (strrpos($principal, 'principals/system', -strlen($principal)) !== false) { list(, $principalId) = URLUtil::splitPath($principal); return self::ADDRESSBOOK_ROOT . '/system/' . $principalId; diff --git a/apps/dav/lib/connector/sabre/davaclplugin.php b/apps/dav/lib/connector/sabre/davaclplugin.php index 4a9dd66161d9..f5699b469c36 100644 --- a/apps/dav/lib/connector/sabre/davaclplugin.php +++ b/apps/dav/lib/connector/sabre/davaclplugin.php @@ -46,7 +46,7 @@ public function __construct() { function checkPrivileges($uri, $privileges, $recursion = self::R_PARENT, $throwExceptions = true) { $access = parent::checkPrivileges($uri, $privileges, $recursion, false); - if($access === false) { + if($access === false && $throwExceptions) { /** @var INode $node */ $node = $this->server->tree->getNodeForPath($uri);