From dfb88612af23c8367e799482ec982fcf6fe96c49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 2 Feb 2016 11:24:26 +0100 Subject: [PATCH] Filter contacts from the local system addressbook - remote share with local users is not allowed --- apps/dav/lib/carddav/addressbookimpl.php | 4 ++++ apps/files_sharing/api/sharees.php | 3 +++ 2 files changed, 7 insertions(+) diff --git a/apps/dav/lib/carddav/addressbookimpl.php b/apps/dav/lib/carddav/addressbookimpl.php index 734e68f207..1d7b55c1a5 100644 --- a/apps/dav/lib/carddav/addressbookimpl.php +++ b/apps/dav/lib/carddav/addressbookimpl.php @@ -214,6 +214,10 @@ class AddressBookImpl implements IAddressBook { foreach ($vCard->children as $property) { $result[$property->name] = $property->getValue(); } + if ($this->addressBookInfo['principaluri'] === 'principals/system/system' && + $this->addressBookInfo['uri'] === 'system') { + $result['isLocalSystemBook'] = true; + } return $result; } } diff --git a/apps/files_sharing/api/sharees.php b/apps/files_sharing/api/sharees.php index c6bef8d784..85cea2e423 100644 --- a/apps/files_sharing/api/sharees.php +++ b/apps/files_sharing/api/sharees.php @@ -270,6 +270,9 @@ class Sharees { $addressBookContacts = $this->contactsManager->search($search, ['CLOUD', 'FN']); $foundRemoteById = false; foreach ($addressBookContacts as $contact) { + if (isset($contact['isLocalSystemBook'])) { + continue; + } if (isset($contact['CLOUD'])) { $cloudIds = $contact['CLOUD']; if (!is_array($cloudIds)) {