From 5f7e1096e3bf801bcb556d8c1a371bd844e96fd1 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 21 Feb 2024 10:32:03 +0100 Subject: [PATCH] fix(search): Hide search providers when not allowed to use Talk Signed-off-by: Joas Schilling [skip ci] --- lib/Search/ConversationSearch.php | 4 ++++ lib/Search/CurrentMessageSearch.php | 5 +++++ lib/Search/MessageSearch.php | 3 +++ 3 files changed, 12 insertions(+) diff --git a/lib/Search/ConversationSearch.php b/lib/Search/ConversationSearch.php index 0e3dbc688ad2..6b18ef540ce9 100644 --- a/lib/Search/ConversationSearch.php +++ b/lib/Search/ConversationSearch.php @@ -26,12 +26,14 @@ namespace OCA\Talk\Search; use OCA\Talk\AppInfo\Application; +use OCA\Talk\Config; use OCA\Talk\Manager; use OCA\Talk\Room; use OCA\Talk\Service\AvatarService; use OCP\IL10N; use OCP\IURLGenerator; use OCP\IUser; +use OCP\IUserSession; use OCP\Search\IProvider; use OCP\Search\ISearchQuery; use OCP\Search\SearchResult; @@ -44,6 +46,8 @@ public function __construct( protected Manager $manager, protected IURLGenerator $url, protected IL10N $l, + protected Config $talkConfig, + protected IUserSession $userSession, ) { } diff --git a/lib/Search/CurrentMessageSearch.php b/lib/Search/CurrentMessageSearch.php index f5594a25ecf2..81f2295e5de1 100644 --- a/lib/Search/CurrentMessageSearch.php +++ b/lib/Search/CurrentMessageSearch.php @@ -48,6 +48,11 @@ public function getName(): string { * @inheritDoc */ public function getOrder(string $route, array $routeParameters): ?int { + $currentUser = $this->userSession->getUser(); + if ($currentUser && $this->talkConfig->isDisabledForUser($currentUser)) { + return null; + } + if ($route === 'spreed.Page.showCall') { // In conversation, prefer this search results return -3; diff --git a/lib/Search/MessageSearch.php b/lib/Search/MessageSearch.php index abfdcddada36..d7ab03aa7c74 100644 --- a/lib/Search/MessageSearch.php +++ b/lib/Search/MessageSearch.php @@ -26,6 +26,7 @@ use OCA\Talk\AppInfo\Application; use OCA\Talk\Chat\ChatManager; use OCA\Talk\Chat\MessageParser; +use OCA\Talk\Config; use OCA\Talk\Exceptions\ParticipantNotFoundException; use OCA\Talk\Exceptions\UnauthorizedException; use OCA\Talk\Manager as RoomManager; @@ -55,6 +56,8 @@ public function __construct( protected ITimeFactory $timeFactory, protected IURLGenerator $url, protected IL10N $l, + protected Config $talkConfig, + protected IUserSession $userSession, ) { }