logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 5cfa32cb50f211d5bffdaa21a0cc705a0bf640ce
parent 897b62091bd9f5ee9a98a49defd2b6591fb53fc7
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.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 + 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