diff --git a/crates/delta/src/routes/channels/permissions_set.rs b/crates/delta/src/routes/channels/permissions_set.rs index 7ab648d1..c0d89f11 100644 --- a/crates/delta/src/routes/channels/permissions_set.rs +++ b/crates/delta/src/routes/channels/permissions_set.rs @@ -2,7 +2,7 @@ use revolt_database::{ util::{permissions::DatabasePermissionQuery, reference::Reference}, voice::{sync_voice_permissions, VoiceClient}, Database, User }; use revolt_models::v0; -use revolt_permissions::{calculate_channel_permissions, ChannelPermission, Override}; +use revolt_permissions::{calculate_channel_permissions, ChannelPermission, Override, PermissionQuery}; use revolt_result::{create_error, Result}; use rocket::{serde::json::Json, State}; @@ -25,6 +25,8 @@ pub async fn set_role_permissions( let mut query = DatabasePermissionQuery::new(db, &user).channel(&channel); let permissions: revolt_permissions::PermissionValue = calculate_channel_permissions(&mut query).await; + query.set_server_from_channel().await; + permissions.throw_if_lacking_channel_permission(ChannelPermission::ManagePermissions)?; if let Some(server) = query.server_ref() {