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:
Lain Soykaf 2026-10-27 17:26:20 +04:00
commit 555d93bc33
No known key found for this signature in database
3 changed files with 14 additions and 1 deletions

View file

@ -0,0 +1 @@
Fix deactivated users being counted in followers collections and getting admin emails, because User.Query ignored the is_active key

View file

@ -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,

View file

@ -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