From d4b5f62bfe8f972f8dbbee5fcd8ea541b0621b10 Mon Sep 17 00:00:00 2001 From: Charles Hall Date: Wed, 12 Jun 2024 20:31:35 -0700 Subject: [PATCH] simplify `is_admin` --- src/service/users.rs | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/service/users.rs b/src/service/users.rs index fe0ac1ac..47277600 100644 --- a/src/service/users.rs +++ b/src/service/users.rs @@ -9,7 +9,6 @@ pub(crate) use data::Data; use ruma::{ api::client::{ device::Device, - error::ErrorKind, filter::FilterDefinition, sync::sync_events::{ self, @@ -20,7 +19,7 @@ use ruma::{ events::AnyToDeviceEvent, serde::Raw, DeviceId, DeviceKeyAlgorithm, DeviceKeyId, OwnedDeviceId, OwnedDeviceKeyId, - OwnedMxcUri, OwnedRoomId, OwnedUserId, RoomAliasId, UInt, UserId, + OwnedMxcUri, OwnedRoomId, OwnedUserId, UInt, UserId, }; use crate::{services, Error, Result}; @@ -259,20 +258,9 @@ impl Service { // Allowed because this function uses `services()` #[allow(clippy::unused_self)] pub(crate) fn is_admin(&self, user_id: &UserId) -> Result { - let admin_room_alias_id = RoomAliasId::parse(format!( - "#admins:{}", - services().globals.server_name() - )) - .map_err(|_| { - Error::BadRequest(ErrorKind::InvalidParam, "Invalid alias.") - })?; - let admin_room_id = services() - .rooms - .alias - .resolve_local_alias(&admin_room_alias_id)? - .unwrap(); - - services().rooms.state_cache.is_joined(user_id, &admin_room_id) + services().admin.get_admin_room()?.map_or(Ok(false), |admin_room_id| { + services().rooms.state_cache.is_joined(user_id, &admin_room_id) + }) } /// Create a new user account on this homeserver.