]> source.dussan.org Git - nextcloud-server.git/commitdiff
Show federation and email results also with exact user match unless containing @ 23085/head
authorJoas Schilling <coding@schilljs.com>
Wed, 23 Sep 2020 08:21:55 +0000 (10:21 +0200)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Tue, 29 Sep 2020 07:16:12 +0000 (07:16 +0000)
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 <coding@schilljs.com>
lib/private/Collaboration/Collaborators/Search.php

index 1aabd423371df51b26b7a1eca2cc95236553a12b..e7773858e5c08c85f9fd02737bbab0c596d6fea9 100644 (file)
@@ -91,9 +91,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);
                }