logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: fcad3e716ad8dc60bd3d94e5b2e0aa18af4c9376
parent 6f9b03384fe50ce063e8fee3103a69dff298107b
Author: Ivan Tashkinov <ivantashkinov@gmail.com>
Date:   Thu, 19 Nov 2020 18:08:22 +0300

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

Diffstat:

Mlib/pleroma/user/search.ex8+++++---
Mtest/pleroma/user_search_test.exs5+++--
2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/lib/pleroma/user/search.ex b/lib/pleroma/user/search.ex @@ -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 diff --git a/test/pleroma/user_search_test.exs b/test/pleroma/user_search_test.exs @@ -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