From 7cc5e440936b66d64097eba9e6a04222cef7622d Mon Sep 17 00:00:00 2001 From: Ginger Date: Sat, 25 Jul 2026 09:51:56 -0400 Subject: [PATCH] fix: Exclude deactivated users and AS puppets from user count --- src/api/client/unversioned.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/api/client/unversioned.rs b/src/api/client/unversioned.rs index f49edf724..8c2c63c60 100644 --- a/src/api/client/unversioned.rs +++ b/src/api/client/unversioned.rs @@ -44,11 +44,25 @@ pub(crate) async fn continuwuity_server_version() -> Result { /// /// conduwuit-specific API to return the amount of users registered on this /// homeserver. Endpoint is disabled if federation is disabled for privacy. This +/// /// only includes active users (not deactivated, etc) pub(crate) async fn continuwuity_local_user_count( State(services): State, ) -> Result { - let user_count = services.users.stream_local_users().count().await; + let user_count = services + .users + .stream_local_users() + .filter_map(async |user_id| { + if !services.users.status(&user_id).await.is_active() + || services.appservice.is_exclusive_user_id(&user_id).await + { + None + } else { + Some(user_id) + } + }) + .count() + .await; Ok(Json(serde_json::json!({ "count": user_count