diff options
author | Georg Ehrke <developer@georgehrke.com> | 2019-03-01 13:02:30 +0100 |
---|---|---|
committer | Georg Ehrke <developer@georgehrke.com> | 2019-03-01 13:02:30 +0100 |
commit | 34601f86232621916ebb044dc08d706bd997bbd2 (patch) | |
tree | a34e00fa82a453f83c485363577b3cf4fb7263d0 /apps/dav | |
parent | 5e37b52241381e5b0f57c58a88a5dbcf0870b3bd (diff) | |
download | nextcloud-server-34601f86232621916ebb044dc08d706bd997bbd2.tar.gz nextcloud-server-34601f86232621916ebb044dc08d706bd997bbd2.zip |
allow sharing addressbooks with circles
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
Diffstat (limited to 'apps/dav')
-rw-r--r-- | apps/dav/lib/CardDAV/CardDavBackend.php | 4 | ||||
-rw-r--r-- | apps/dav/lib/Connector/Sabre/Principal.php | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 699248f7b17..f30a12bba4e 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -167,8 +167,10 @@ class CardDavBackend implements BackendInterface, SyncSupport { } $result->closeCursor(); - // query for shared calendars + // query for shared addressbooks $principals = $this->principalBackend->getGroupMembership($principalUriOriginal, true); + $principals = array_merge($principals, $this->principalBackend->getCircleMembership($principalUriOriginal)); + $principals = array_map(function($principal) { return urldecode($principal); }, $principals); diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php index 39b4da683a8..18c5545d8d7 100644 --- a/apps/dav/lib/Connector/Sabre/Principal.php +++ b/apps/dav/lib/Connector/Sabre/Principal.php @@ -426,13 +426,12 @@ class Principal implements BackendInterface { * @return array * @throws Exception */ - public function getCircleMembership($principal) { + public function getCircleMembership($principal):array { if (!\OC::$server->getAppManager()->isEnabledForUser('circles') || !class_exists('\OCA\Circles\ShareByCircleProvider')) { return []; } list($prefix, $name) = \Sabre\Uri\split($principal); - if ($this->hasCircles && $prefix === $this->principalPrefix) { $user = $this->userManager->get($name); if (!$user) { |