From 679aa21075c5d04a57e1f77ef66bcda29d185c9d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 23 Sep 2020 10:21:55 +0200 Subject: [PATCH] Show federation and email results also with exact user match unless containing @ Before when you have a user "smith" and a federated user "smith@example.com" you could see the federation result with "smit" but not with "smith" anymore. With most LDAP configurations and local backend setups this is disturbing and causes issues. The idea of not showing the email and federation on a matching user was with: Local user registered with "smith@example.com" user id and having that same email / cloud id in your contacts addressbook. So we now only hide those "side results" when the search does contain an @ Signed-off-by: Joas Schilling --- lib/private/Collaboration/Collaborators/Search.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/private/Collaboration/Collaborators/Search.php b/lib/private/Collaboration/Collaborators/Search.php index 8594e87e4a..d2b45d761c 100644 --- a/lib/private/Collaboration/Collaborators/Search.php +++ b/lib/private/Collaboration/Collaborators/Search.php @@ -90,9 +90,10 @@ class Search implements ISearch { $searchResult->unsetResult($emailType); } - // if we have an exact local user match, there is no need to show the remote and email matches + // if we have an exact local user match with an email-a-like query, + // there is no need to show the remote and email matches. $userType = new SearchResultType('users'); - if ($searchResult->hasExactIdMatch($userType)) { + if (strpos($search, '@') !== false && $searchResult->hasExactIdMatch($userType)) { $searchResult->unsetResult($remoteType); $searchResult->unsetResult($emailType); }