forked from jmug/stoatchat
Channel subscription, message sending, channel delete.
This commit is contained in:
@@ -28,6 +28,23 @@ pub async fn calculate(user: &User, target: &Channel) -> ChannelPermissions<[u32
|
||||
ChannelPermissions([ 0 ])
|
||||
}
|
||||
}
|
||||
Channel::DirectMessage { recipients, .. } => {
|
||||
if recipients.iter().find(|x| *x == &user.id).is_some() {
|
||||
if let Some(recipient) = recipients
|
||||
.iter()
|
||||
.find(|x| *x != &user.id) {
|
||||
let perms = super::user::calculate(&user, recipient).await;
|
||||
|
||||
if perms.get_send_message() {
|
||||
return ChannelPermissions([ ChannelPermission::View + ChannelPermission::SendMessage ]);
|
||||
}
|
||||
|
||||
return ChannelPermissions([ ChannelPermission::View as u32 ]);
|
||||
}
|
||||
}
|
||||
|
||||
ChannelPermissions([ 0 ])
|
||||
}
|
||||
_ => unreachable!()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user