diff --git a/src/botv2/domain/server_config/check_if_server_enable_and_admin.rs b/src/botv2/domain/server_config/check_if_server_enable_and_admin.rs index 518297b..9f6d91b 100644 --- a/src/botv2/domain/server_config/check_if_server_enable_and_admin.rs +++ b/src/botv2/domain/server_config/check_if_server_enable_and_admin.rs @@ -1,6 +1,6 @@ use super::check_if_server_enable::{check_if_server_enable, CheckIfServerEnableError}; -use crate::{api::bot::info, db::server_config::ServerConfig}; -use poise::serenity_prelude::{self, RoleId, UserId}; +use crate::db::server_config::ServerConfig; +use poise::serenity_prelude::{self, CacheHttp, RoleId, UserId}; use tracing::{info, instrument}; #[instrument(level = "info", skip(http))] @@ -34,6 +34,7 @@ pub async fn check_if_server_enable_and_user_admin( match guild.member(http, UserId::new(user_id)).await { Ok(member) => { info!(user_name = member.user.name, "Checking if user is admin"); + if let Some(perm) = member.permissions { info!(perm = perm.bits(), "Checking if user has admin permission"); if perm.administrator() { @@ -45,6 +46,7 @@ pub async fn check_if_server_enable_and_user_admin( .permissions .into_iter() .any(|perm| perm.administrator()) + || guild.member_permissions(&member).administrator() { info!("User has administarator permission"); return Ok((true, Some(server_config)));