From 4456513139a090db84547f1f467a7eb4703c4115 Mon Sep 17 00:00:00 2001 From: oxalica Date: Thu, 29 Aug 2024 18:19:26 -0400 Subject: [PATCH] Fix room permission check --- src/main.rs | 4 +++- src/types.rs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 08fced6..1576e84 100644 --- a/src/main.rs +++ b/src/main.rs @@ -452,11 +452,13 @@ async fn room_post_item( JOIN `room_member` USING (`rid`) JOIN `user` USING (`uid`) WHERE `ruuid` = :ruuid AND - `userkey` = :userkey + `userkey` = :userkey AND + (`room_member`.`permission` & :perm) = :perm ", named_params! { ":ruuid": ruuid, ":userkey": &chat.signee.user, + ":perm": RoomPermission::POST_CHAT, }, |row| Ok((row.get::<_, u64>("rid")?, row.get::<_, u64>("uid")?)), ) diff --git a/src/types.rs b/src/types.rs index 386349e..8daa2bc 100644 --- a/src/types.rs +++ b/src/types.rs @@ -125,7 +125,7 @@ bitflags! { #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct RoomPermission: u64 { - const PUSH_CHAT = 1 << 0; + const POST_CHAT = 1 << 0; const ADD_MEMBER = 1 << 1; const ALL = !0;