Filter outstanding follower requests from deactivated accounts

This commit is contained in:
Mark Felder 2020-06-24 17:18:53 -05:00
parent b4a502fc8b
commit 67ab580553
2 changed files with 11 additions and 0 deletions

View File

@ -124,6 +124,7 @@ def get_follow_requests(%User{id: id}) do
|> join(:inner, [r], f in assoc(r, :follower))
|> where([r], r.state == ^:follow_pending)
|> where([r], r.following_id == ^id)
|> where([r, f], f.deactivated != true)
|> select([r, f], f)
|> Repo.all()
end

View File

@ -199,6 +199,16 @@ test "doesn't return already accepted or duplicate follow requests" do
assert [^pending_follower] = User.get_follow_requests(locked)
end
test "doesn't return follow requests for deactivated accounts" do
locked = insert(:user, locked: true)
pending_follower = insert(:user, %{deactivated: true})
CommonAPI.follow(pending_follower, locked)
assert true == pending_follower.deactivated
assert [] = User.get_follow_requests(locked)
end
test "clears follow requests when requester is blocked" do
followed = insert(:user, locked: true)
follower = insert(:user)