fix(moderation): save overwrites before modifying them

This commit is contained in:
oSumAtrIX 2022-10-07 13:01:30 +02:00
parent 6279a79132
commit 2f67c59bb3
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4

View File

@ -9,6 +9,7 @@ use poise::serenity_prelude::{
RoleId,
User,
};
use tracing::log::error;
use tracing::{debug, trace};
use crate::db::model::{LockedChannel, Muted};
@ -72,21 +73,9 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
})
.collect();
// lock the channel by and creating the new permission overwrite
for permission_overwrite in &permission_overwrites {
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
channel
.create_permission(http, &PermissionOverwrite {
allow: permission_overwrite.allow & !permission,
deny: permission_overwrite.deny | permission,
kind: permission_overwrite.kind,
})
.await?;
}
// save the original overwrites
let updated: Document = LockedChannel {
overwrites: Some(permission_overwrites),
overwrites: Some(permission_overwrites.clone()),
..Default::default()
}
.into();
@ -100,6 +89,22 @@ pub async fn lock(ctx: Context<'_>) -> Result<(), Error> {
)
.await?;
// lock the channel by and creating the new permission overwrite
for permission_overwrite in &permission_overwrites {
let permission = Permissions::SEND_MESSAGES & Permissions::ADD_REACTIONS;
if let Err(err) = channel
.create_permission(http, &PermissionOverwrite {
allow: permission_overwrite.allow & !permission,
deny: permission_overwrite.deny | permission,
kind: permission_overwrite.kind,
})
.await
{
error!("Failed to create the new permission: {:?}", err);
}
}
respond_moderation(
&ctx,
&ModerationKind::Lock(channel.name.clone(), None),