[#2301] Quick fix: users with is_discoverable == false (default!) are included in...
authorIvan Tashkinov <ivantashkinov@gmail.com>
Thu, 19 Nov 2020 15:08:22 +0000 (18:08 +0300)
committerlain <lain@soykaf.club>
Tue, 22 Dec 2020 20:16:37 +0000 (21:16 +0100)
lib/pleroma/user/search.ex
test/pleroma/user_search_test.exs

index 35a828008ceb34e6b6653b34d47df68b65c54d53..b54111090596e717d69e30082cbc5ed76f36911c 100644 (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.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
index c4b8050055b04c167ed4e0afeacd65c1f40feb67..42f3f78a8aa1a145c5086885b3a9f91af855694c 100644 (file)
@@ -65,12 +65,13 @@ defmodule Pleroma.UserSearchTest do
       assert found_user.id == user.id
     end
 
-    test "excludes users when discoverable is false" do
+    test "does NOT exclude non-discoverable users from results (as long as it's the default)" do
+      # NOTE: as long as users are non-discoverable by default, we can't filter out most users: #2301
       insert(:user, %{nickname: "john 3000", 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