Channel subscription, message sending, channel delete.

This commit is contained in:
Paul Makles
2021-01-18 14:50:17 +00:00
parent 15357008d6
commit 3d3db80e61
7 changed files with 139 additions and 4 deletions

View File

@@ -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!()
}
}