summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Collaboration/Collaborators/RemotePlugin.php7
-rw-r--r--lib/private/Contacts/ContactsMenu/ContactsStore.php9
-rw-r--r--lib/private/Federation/CloudIdManager.php7
-rw-r--r--lib/private/Share/Share.php7
4 files changed, 25 insertions, 5 deletions
diff --git a/lib/private/Collaboration/Collaborators/RemotePlugin.php b/lib/private/Collaboration/Collaborators/RemotePlugin.php
index 4fe62523b66..7d7a013a38c 100644
--- a/lib/private/Collaboration/Collaborators/RemotePlugin.php
+++ b/lib/private/Collaboration/Collaborators/RemotePlugin.php
@@ -67,7 +67,12 @@ class RemotePlugin implements ISearchPlugin {
$resultType = new SearchResultType('remotes');
// Search in contacts
- $addressBookContacts = $this->contactsManager->search($search, ['CLOUD', 'FN'], ['limit' => $limit, 'offset' => $offset]);
+ $addressBookContacts = $this->contactsManager->search($search, ['CLOUD', 'FN'], [
+ 'limit' => $limit,
+ 'offset' => $offset,
+ 'enumeration' => false,
+ 'fullmatch' => false,
+ ]);
foreach ($addressBookContacts as $contact) {
if (isset($contact['isLocalSystemBook'])) {
continue;
diff --git a/lib/private/Contacts/ContactsMenu/ContactsStore.php b/lib/private/Contacts/ContactsMenu/ContactsStore.php
index cd1cc9b6169..a27c2ae455a 100644
--- a/lib/private/Contacts/ContactsMenu/ContactsStore.php
+++ b/lib/private/Contacts/ContactsMenu/ContactsStore.php
@@ -96,7 +96,10 @@ class ContactsStore implements IContactsStore {
* @return IEntry[]
*/
public function getContacts(IUser $user, $filter, ?int $limit = null, ?int $offset = null) {
- $options = [];
+ $options = [
+ 'enumeration' => $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes',
+ 'fullmatch' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match', 'yes') === 'yes',
+ ];
if ($limit !== null) {
$options['limit'] = $limit;
}
@@ -270,7 +273,9 @@ class ContactsStore implements IContactsStore {
return null;
}
- $contacts = $this->contactsManager->search($shareWith, $filter);
+ $contacts = $this->contactsManager->search($shareWith, $filter, [
+ 'strict_search' => true,
+ ]);
$match = null;
foreach ($contacts as $contact) {
diff --git a/lib/private/Federation/CloudIdManager.php b/lib/private/Federation/CloudIdManager.php
index 24437456fd0..77bb9437ba2 100644
--- a/lib/private/Federation/CloudIdManager.php
+++ b/lib/private/Federation/CloudIdManager.php
@@ -90,7 +90,12 @@ class CloudIdManager implements ICloudIdManager {
}
protected function getDisplayNameFromContact(string $cloudId): ?string {
- $addressBookEntries = $this->contactsManager->search($cloudId, ['CLOUD']);
+ $addressBookEntries = $this->contactsManager->search($cloudId, ['CLOUD'], [
+ 'limit' => 1,
+ 'enumeration' => false,
+ 'fullmatch' => false,
+ 'strict_search' => true,
+ ]);
foreach ($addressBookEntries as $entry) {
if (isset($entry['CLOUD'])) {
foreach ($entry['CLOUD'] as $cloudID) {
diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php
index a857a850f9b..548c8a2c451 100644
--- a/lib/private/Share/Share.php
+++ b/lib/private/Share/Share.php
@@ -593,7 +593,12 @@ class Share extends Constants {
$row['share_with_displayname'] = $shareWithUser === null ? $row['share_with'] : $shareWithUser->getDisplayName();
} elseif (isset($row['share_with']) && $row['share_with'] != '' &&
$row['share_type'] === IShare::TYPE_REMOTE) {
- $addressBookEntries = \OC::$server->getContactsManager()->search($row['share_with'], ['CLOUD']);
+ $addressBookEntries = \OC::$server->getContactsManager()->search($row['share_with'], ['CLOUD'], [
+ 'limit' => 1,
+ 'enumeration' => false,
+ 'fullmatch' => false,
+ 'strict_search' => true,
+ ]);
foreach ($addressBookEntries as $entry) {
foreach ($entry['CLOUD'] as $cloudID) {
if ($cloudID === $row['share_with']) {