forked from AkkomaGang/akkoma
Merge branch 'optimisation/deactivated-subquery' into 'develop'
Make deactivated user check into a subquery Closes #2792 See merge request pleroma/pleroma!3554
This commit is contained in:
commit
ab60c0c6c2
2 changed files with 16 additions and 4 deletions
|
@ -362,11 +362,9 @@ def following_requests_for_actor(%User{ap_id: ap_id}) do
|
||||||
end
|
end
|
||||||
|
|
||||||
def restrict_deactivated_users(query) do
|
def restrict_deactivated_users(query) do
|
||||||
deactivated_users =
|
deactivated_users_query = from(u in User.Query.build(%{deactivated: true}), select: u.ap_id)
|
||||||
from(u in User.Query.build(%{deactivated: true}), select: u.ap_id)
|
|
||||||
|> Repo.all()
|
|
||||||
|
|
||||||
Activity.Queries.exclude_authors(query, deactivated_users)
|
from(activity in query, where: activity.actor not in subquery(deactivated_users_query))
|
||||||
end
|
end
|
||||||
|
|
||||||
defdelegate search(user, query, options \\ []), to: Pleroma.Activity.Search
|
defdelegate search(user, query, options \\ []), to: Pleroma.Activity.Search
|
||||||
|
|
|
@ -776,6 +776,20 @@ test "doesn't return blocked activities" do
|
||||||
assert Enum.member?(activities, activity_one)
|
assert Enum.member?(activities, activity_one)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "doesn't return activities from deactivated users" do
|
||||||
|
_user = insert(:user)
|
||||||
|
deactivated = insert(:user)
|
||||||
|
active = insert(:user)
|
||||||
|
{:ok, activity_one} = CommonAPI.post(deactivated, %{status: "hey!"})
|
||||||
|
{:ok, activity_two} = CommonAPI.post(active, %{status: "yay!"})
|
||||||
|
{:ok, _updated_user} = User.set_activation(deactivated, false)
|
||||||
|
|
||||||
|
activities = ActivityPub.fetch_activities([], %{})
|
||||||
|
|
||||||
|
refute Enum.member?(activities, activity_one)
|
||||||
|
assert Enum.member?(activities, activity_two)
|
||||||
|
end
|
||||||
|
|
||||||
test "always see your own posts even when they address people you block" do
|
test "always see your own posts even when they address people you block" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
blockee = insert(:user)
|
blockee = insert(:user)
|
||||||
|
|
Loading…
Reference in a new issue