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 super::*;
|
||||
use crate::cache::Cache;
|
||||
use crate::model::auth::Notification;
|
||||
|
@ -273,20 +272,22 @@ impl DataManager {
|
|||
let channel = self.get_channel_by_id(message.channel).await?;
|
||||
|
||||
// check user permission in community
|
||||
let membership = self
|
||||
.get_membership_by_owner_community(user.id, channel.community)
|
||||
.await?;
|
||||
if user.id != message.owner {
|
||||
let membership = self
|
||||
.get_membership_by_owner_community(user.id, channel.community)
|
||||
.await?;
|
||||
|
||||
if !membership.role.check(CommunityPermission::MANAGE_MESSAGES)
|
||||
&& !user.permissions.check(FinePermission::MANAGE_MESSAGES)
|
||||
{
|
||||
return Err(Error::NotAllowed);
|
||||
} else if user.permissions.check(FinePermission::MANAGE_MESSAGES) {
|
||||
self.create_audit_log_entry(AuditLogEntry::new(
|
||||
user.id,
|
||||
format!("invoked `delete_message` with x value `{id}`"),
|
||||
))
|
||||
.await?
|
||||
if !membership.role.check(CommunityPermission::MANAGE_MESSAGES)
|
||||
&& !user.permissions.check(FinePermission::MANAGE_MESSAGES)
|
||||
{
|
||||
return Err(Error::NotAllowed);
|
||||
} else if user.permissions.check(FinePermission::MANAGE_MESSAGES) {
|
||||
self.create_audit_log_entry(AuditLogEntry::new(
|
||||
user.id,
|
||||
format!("invoked `delete_message` with x value `{id}`"),
|
||||
))
|
||||
.await?
|
||||
}
|
||||
}
|
||||
|
||||
// ...
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue