fix(user): use deactivated: false for familiar followers
User.Query ignores is_active. The friends subquery already drops deactivated users here, so this only removes the last ignored key. Also add a changelog entry and a test.
This commit is contained in:
parent
f5898ab0fb
commit
555d93bc33
3 changed files with 14 additions and 1 deletions
1
changelog.d/user-query-is-active.fix
Normal file
1
changelog.d/user-query-is-active.fix
Normal file
|
|
@ -0,0 +1 @@
|
|||
Fix deactivated users being counted in followers collections and getting admin emails, because User.Query ignored the is_active key
|
||||
|
|
@ -1476,7 +1476,7 @@ defmodule Pleroma.User do
|
|||
|> where([u], not u.hide_follows)
|
||||
|> select([u], u.id)
|
||||
|
||||
User.Query.build(%{is_active: true})
|
||||
User.Query.build(%{deactivated: false})
|
||||
|> where([u], u.id not in ^[user.id, current_user.id])
|
||||
|> join(:inner, [u], r in FollowingRelationship,
|
||||
as: :followers_relationships,
|
||||
|
|
|
|||
|
|
@ -3009,6 +3009,18 @@ defmodule Pleroma.UserTest do
|
|||
|
||||
assert [%{id: ^id2}] = User.get_familiar_followers(user3, user1)
|
||||
end
|
||||
|
||||
test "does not return deactivated users" do
|
||||
user1 = insert(:user)
|
||||
user2 = insert(:user)
|
||||
user3 = insert(:user)
|
||||
|
||||
User.follow(user1, user2)
|
||||
User.follow(user2, user3)
|
||||
{:ok, _} = User.set_activation(user2, false)
|
||||
|
||||
assert [] = User.get_familiar_followers(user3, user1)
|
||||
end
|
||||
end
|
||||
|
||||
describe "account endorsements" do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue