Skip to content

Commit

Permalink
Merge pull request #11617 from nextcloud/bugfix/noid/hide-search-prov…
Browse files Browse the repository at this point in the history
…iders-when-not-allowed

fix(search): Hide search providers when not allowed to use Talk
  • Loading branch information
nickvergessen authored Feb 21, 2024
2 parents 981e57b + 02e8021 commit c296a83
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
11 changes: 10 additions & 1 deletion lib/Search/ConversationSearch.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -44,6 +46,8 @@ public function __construct(
protected Manager $manager,
protected IURLGenerator $url,
protected IL10N $l,
protected Config $talkConfig,
protected IUserSession $userSession,
) {
}

Expand All @@ -64,7 +68,12 @@ public function getName(): string {
/**
* @inheritDoc
*/
public function getOrder(string $route, array $routeParameters): int {
public function getOrder(string $route, array $routeParameters): ?int {
$currentUser = $this->userSession->getUser();
if ($currentUser && $this->talkConfig->isDisabledForUser($currentUser)) {
return null;
}

if (str_starts_with($route, Application::APP_ID . '.')) {
// Active app, prefer Talk results
return -1;
Expand Down
5 changes: 5 additions & 0 deletions lib/Search/CurrentMessageSearch.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
9 changes: 9 additions & 0 deletions lib/Search/MessageSearch.php
Original file line number Diff line number Diff line change
Expand Up @@ -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\RoomNotFoundException;
use OCA\Talk\Exceptions\UnauthorizedException;
Expand All @@ -39,6 +40,7 @@
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Search\FilterDefinition;
use OCP\Search\IFilter;
use OCP\Search\IFilteringProvider;
Expand All @@ -61,6 +63,8 @@ public function __construct(
protected ITimeFactory $timeFactory,
protected IURLGenerator $url,
protected IL10N $l,
protected Config $talkConfig,
protected IUserSession $userSession,
) {
}

Expand All @@ -82,6 +86,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 (str_starts_with($route, Application::APP_ID . '.')) {
// Active app, prefer Talk results
return -2;
Expand Down

0 comments on commit c296a83

Please sign in to comment.