fix: message deletion by owner
This commit is contained in:
parent
52c1ddd7c4
commit
65f59100ce
1 changed files with 15 additions and 14 deletions
|
@ -1,5 +1,4 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::cache::Cache;
|
use crate::cache::Cache;
|
||||||
use crate::model::auth::Notification;
|
use crate::model::auth::Notification;
|
||||||
|
@ -273,20 +272,22 @@ impl DataManager {
|
||||||
let channel = self.get_channel_by_id(message.channel).await?;
|
let channel = self.get_channel_by_id(message.channel).await?;
|
||||||
|
|
||||||
// check user permission in community
|
// check user permission in community
|
||||||
let membership = self
|
if user.id != message.owner {
|
||||||
.get_membership_by_owner_community(user.id, channel.community)
|
let membership = self
|
||||||
.await?;
|
.get_membership_by_owner_community(user.id, channel.community)
|
||||||
|
.await?;
|
||||||
|
|
||||||
if !membership.role.check(CommunityPermission::MANAGE_MESSAGES)
|
if !membership.role.check(CommunityPermission::MANAGE_MESSAGES)
|
||||||
&& !user.permissions.check(FinePermission::MANAGE_MESSAGES)
|
&& !user.permissions.check(FinePermission::MANAGE_MESSAGES)
|
||||||
{
|
{
|
||||||
return Err(Error::NotAllowed);
|
return Err(Error::NotAllowed);
|
||||||
} else if user.permissions.check(FinePermission::MANAGE_MESSAGES) {
|
} else if user.permissions.check(FinePermission::MANAGE_MESSAGES) {
|
||||||
self.create_audit_log_entry(AuditLogEntry::new(
|
self.create_audit_log_entry(AuditLogEntry::new(
|
||||||
user.id,
|
user.id,
|
||||||
format!("invoked `delete_message` with x value `{id}`"),
|
format!("invoked `delete_message` with x value `{id}`"),
|
||||||
))
|
))
|
||||||
.await?
|
.await?
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue