Browse Source

[#2301] Quick fix: users with is_discoverable == false (default!) are included in search results.

features/emoji_reactions_list
Ivan Tashkinov 3 years ago
parent
commit
fcad3e716a
2 changed files with 8 additions and 5 deletions
  1. +5
    -3
      lib/pleroma/user/search.ex
  2. +3
    -2
      test/pleroma/user_search_test.exs

+ 5
- 3
lib/pleroma/user/search.ex View File

@@ -85,7 +85,7 @@ defmodule Pleroma.User.Search do
|> base_query(following)
|> filter_blocked_user(for_user)
|> filter_invisible_users()
|> filter_discoverable_users()
|> filter_non_discoverable_users()
|> filter_internal_users()
|> filter_blocked_domains(for_user)
|> fts_search(query_string)
@@ -163,8 +163,10 @@ defmodule Pleroma.User.Search do
from(q in query, where: q.invisible == false)
end

defp filter_discoverable_users(query) do
from(q in query, where: q.is_discoverable == true)
defp filter_non_discoverable_users(query) do
# Note: commented out — can't do it with users being non-discoverable by default
# from(q in query, where: q.is_discoverable == true)
query
end

defp filter_internal_users(query) do


+ 3
- 2
test/pleroma/user_search_test.exs View File

@@ -65,12 +65,13 @@ defmodule Pleroma.UserSearchTest do
assert found_user.id == user.id
end

test "excludes users when discoverable is false" do
# NOTE: as long as users are non-discoverable by default, we can't filter out most users: #2301
test "does NOT exclude non-discoverable users from results (as long as it's the default)" do
insert(:user, %{nickname: "john 3000", is_discoverable: false})
insert(:user, %{nickname: "john 3001"})

users = User.search("john")
assert Enum.count(users) == 1
assert Enum.count(users) == 2
end

test "excludes service actors from results" do


Loading…
Cancel
Save