summaryrefslogtreecommitdiffstats
path: root/apps/dav
diff options
context:
space:
mode:
authorGeorg Ehrke <developer@georgehrke.com>2019-03-01 13:02:30 +0100
committerGeorg Ehrke <developer@georgehrke.com>2019-03-01 13:02:30 +0100
commit34601f86232621916ebb044dc08d706bd997bbd2 (patch)
treea34e00fa82a453f83c485363577b3cf4fb7263d0 /apps/dav
parent5e37b52241381e5b0f57c58a88a5dbcf0870b3bd (diff)
downloadnextcloud-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.php4
-rw-r--r--apps/dav/lib/Connector/Sabre/Principal.php3
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) {