mirror of
https://github.com/Blah-IM/blahrs.git
synced 2025-07-12 00:55:33 +00:00
feat(webapi): impl member information query
This commit is contained in:
parent
8378c4d230
commit
920a1cc3b9
4 changed files with 74 additions and 4 deletions
|
@ -1711,7 +1711,7 @@ async fn room_mgmt_remove(server: Server) {
|
|||
|
||||
#[rstest]
|
||||
#[tokio::test]
|
||||
async fn room_mgmt_update_perm(server: Server) {
|
||||
async fn room_mgmt_perm(server: Server) {
|
||||
let rid = server
|
||||
.create_room(&ALICE, RoomAttrs::PUBLIC_JOINABLE, "public")
|
||||
.await
|
||||
|
@ -1721,6 +1721,22 @@ async fn room_mgmt_update_perm(server: Server) {
|
|||
.await
|
||||
.unwrap();
|
||||
|
||||
let get_bob = || {
|
||||
server.get::<RoomMember>(
|
||||
&format!("/room/{rid}/member/{}", BOB.pubkeys.id_key),
|
||||
Some(&auth(&BOB)),
|
||||
)
|
||||
};
|
||||
// Initial permission.
|
||||
assert_eq!(
|
||||
get_bob().await.unwrap(),
|
||||
RoomMember {
|
||||
id_key: BOB.pubkeys.id_key.clone(),
|
||||
permission: MemberPermission::MAX_SELF_ADD,
|
||||
last_seen_cid: None,
|
||||
}
|
||||
);
|
||||
|
||||
// OK, Alice grants Bob permission to change permission.
|
||||
server
|
||||
.update_member_perm(
|
||||
|
@ -1731,6 +1747,10 @@ async fn room_mgmt_update_perm(server: Server) {
|
|||
)
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
get_bob().await.unwrap().permission,
|
||||
MemberPermission::POST_CHAT | MemberPermission::UPDATE_MEMBER
|
||||
);
|
||||
|
||||
// Cannot restrict a member with higher permission.
|
||||
server
|
||||
|
@ -1743,6 +1763,10 @@ async fn room_mgmt_update_perm(server: Server) {
|
|||
.update_member_perm(rid, &BOB, &BOB, MemberPermission::empty())
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
get_bob().await.unwrap().permission,
|
||||
MemberPermission::empty(),
|
||||
);
|
||||
|
||||
// Cannot self-grant permission.
|
||||
server
|
||||
|
@ -1761,6 +1785,10 @@ async fn room_mgmt_update_perm(server: Server) {
|
|||
.update_member_perm(rid, &ALICE, &BOB, MemberPermission::POST_CHAT)
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
get_bob().await.unwrap().permission,
|
||||
MemberPermission::POST_CHAT,
|
||||
);
|
||||
|
||||
// Bob can chat again.
|
||||
server.post_chat(rid, &BOB, "yay").await.unwrap();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue