mirror of
https://github.com/Blah-IM/blahrs.git
synced 2025-07-07 06:35:34 +00:00
feat(webapi): impl member permission update
This commit is contained in:
parent
ad4a38cf43
commit
8378c4d230
5 changed files with 212 additions and 7 deletions
|
@ -364,12 +364,20 @@ pub struct AddMemberPayload {
|
|||
pub member: RoomMember,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
#[serde(tag = "typ", rename_all = "snake_case", rename = "update_member")]
|
||||
pub struct UpdateMemberPayload {
|
||||
pub room: Id,
|
||||
#[serde(flatten)]
|
||||
pub member: RoomMember,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum RoomAdminOp {
|
||||
AddMember(AddMemberPayload),
|
||||
RemoveMember(RemoveMemberPayload),
|
||||
// TODO: RU
|
||||
// TODO: R
|
||||
}
|
||||
|
||||
bitflags::bitflags! {
|
||||
|
@ -394,6 +402,7 @@ bitflags::bitflags! {
|
|||
// TODO: Should we have multiple levels of removal permission, so that admins
|
||||
// may not remove all other admins?
|
||||
const REMOVE_MEMBER = 1 << 4;
|
||||
const UPDATE_MEMBER = 1 << 5;
|
||||
|
||||
const MAX_SELF_ADD = Self::POST_CHAT.bits();
|
||||
const MAX_PEER_CHAT = Self::POST_CHAT.bits() | Self::DELETE_ROOM.bits() | Self::LIST_MEMBERS.bits();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue