diff --git a/src/admin/user/commands.rs b/src/admin/user/commands.rs index 821f51f1..a01434ba 100644 --- a/src/admin/user/commands.rs +++ b/src/admin/user/commands.rs @@ -167,7 +167,7 @@ pub(super) async fn deactivate_all(&self, no_leave_rooms: bool, force: bool) -> continue; }, | Ok(user_id) => { - if self.services.users.is_admin(&user_id).await && !force { + if self.services.admin.user_is_admin(&user_id).await && !force { self.services .admin .send_text(&format!( diff --git a/src/api/client/directory.rs b/src/api/client/directory.rs index 6e5e7f41..3e4ef560 100644 --- a/src/api/client/directory.rs +++ b/src/api/client/directory.rs @@ -134,7 +134,7 @@ pub(crate) async fn set_room_visibility_route( .server .config .lockdown_public_room_directory - && !services.users.is_admin(sender_user).await + && !services.admin.user_is_admin(sender_user).await && body.appservice_info.is_none() { info!( diff --git a/src/api/client/membership/mod.rs b/src/api/client/membership/mod.rs index 877e84d4..54173da4 100644 --- a/src/api/client/membership/mod.rs +++ b/src/api/client/membership/mod.rs @@ -59,7 +59,7 @@ pub(crate) async fn banned_room_check( orig_room_id: Option<&RoomOrAliasId>, client_ip: IpAddr, ) -> Result { - if services.users.is_admin(user_id).await { + if services.admin.user_is_admin(user_id).await { return Ok(()); } diff --git a/src/api/client/room/create.rs b/src/api/client/room/create.rs index e8afb336..67fd52ec 100644 --- a/src/api/client/room/create.rs +++ b/src/api/client/room/create.rs @@ -807,7 +807,10 @@ async fn can_publish_directory_check( .lockdown_public_room_directory || body.appservice_info.is_some() || body.visibility != room::Visibility::Public - || services.users.is_admin(body.sender_user()).await + || services + .admin + .user_is_admin(body.sender_user()) + .await { return Ok(()); } @@ -832,7 +835,10 @@ async fn can_create_room_check( ) -> Result { if !services.config.allow_room_creation && body.appservice_info.is_none() - && !services.users.is_admin(body.sender_user()).await + && !services + .admin + .user_is_admin(body.sender_user()) + .await { return Err!(Request(Forbidden("Room creation has been disabled.",))); } diff --git a/src/api/client/utils.rs b/src/api/client/utils.rs index 2a41372e..17f27d34 100644 --- a/src/api/client/utils.rs +++ b/src/api/client/utils.rs @@ -7,7 +7,8 @@ pub(crate) async fn invite_check( sender_user: &UserId, room_id: &RoomId, ) -> Result { - if !services.users.is_admin(sender_user).await && services.config.block_non_admin_invites { + if !services.admin.user_is_admin(sender_user).await && services.config.block_non_admin_invites + { warn!("{sender_user} is not an admin and attempted to send an invite to {room_id}"); return Err!(Request(Forbidden("Invites are not allowed on this server."))); } diff --git a/src/api/server/invite.rs b/src/api/server/invite.rs index 253dcef4..b98ae393 100644 --- a/src/api/server/invite.rs +++ b/src/api/server/invite.rs @@ -147,12 +147,14 @@ pub(crate) async fn create_invite_route( } if services.metadata.is_banned(&body.room_id).await - && !services.users.is_admin(&invited_user).await + && !services.admin.user_is_admin(&invited_user).await { return Err!(Request(Forbidden("This room is banned on this homeserver."))); } - if services.config.block_non_admin_invites && !services.users.is_admin(&invited_user).await { + if services.config.block_non_admin_invites + && !services.admin.user_is_admin(&invited_user).await + { return Err!(Request(Forbidden("This server does not allow room invites."))); } diff --git a/src/service/users/mod.rs b/src/service/users/mod.rs index b8f1be20..ef9da781 100644 --- a/src/service/users/mod.rs +++ b/src/service/users/mod.rs @@ -107,12 +107,6 @@ impl Service { }) } - /// Check if a user is an admin - #[inline] - pub async fn is_admin(&self, user_id: &UserId) -> bool { - self.services.admin.user_is_admin(user_id).await - } - /// Create a new user account on this homeserver. /// /// User origin is by default "password" (meaning that it will login using