From 3a81d1cbe2cf3f3abaa68bac6c5c47dd03fbc9b0 Mon Sep 17 00:00:00 2001 From: Luka Trovic Date: Wed, 28 Sep 2022 18:51:54 +0200 Subject: [PATCH] fix: mention search issues Signed-off-by: Luka Trovic --- lib/Controller/UserApiController.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/Controller/UserApiController.php b/lib/Controller/UserApiController.php index 8267af28413..7ffdb7fa253 100644 --- a/lib/Controller/UserApiController.php +++ b/lib/Controller/UserApiController.php @@ -10,6 +10,7 @@ use OCP\IUserManager; use OCP\IUserSession; use OCP\Share\IShare; +use Psr\Log\LoggerInterface; class UserApiController extends ApiController { private ISearch $collaboratorSearch; @@ -44,7 +45,10 @@ public function index(int $documentId, int $sessionId, string $sessionToken, str foreach ($sessions as $session) { $sessionUserId = $session['userId']; if ($sessionUserId !== null && !isset($users[$sessionUserId])) { - $users[$sessionUserId] = $this->userManager->getDisplayName($sessionUserId); + $displayName = $this->userManager->getDisplayName($sessionUserId); + if (stripos($displayName, $filter) !== false) { + $users[$sessionUserId] = $displayName; + } } } @@ -52,16 +56,14 @@ public function index(int $documentId, int $sessionId, string $sessionToken, str if ($currentSession->getUserId() !== null) { // Add other users to the autocomplete list [$result] = $this->collaboratorSearch->search($filter, [IShare::TYPE_USER], false, $limit, 0); + $userSearch = array_merge($result['users'], $result['exact']['users']); - foreach ($result['users'] as ['label' => $label, 'value' => $value]) { + foreach ($userSearch as ['label' => $label, 'value' => $value]) { if (isset($value['shareWith'])) { $id = $value['shareWith']; $users[$id] = $label; } } - - $user = $this->userSession->getUser(); - $users[$user->getUID()] = $user->getDisplayName(); } return new DataResponse($users);