From e4b5a23f71120074939ab0404db0206326a228a2 Mon Sep 17 00:00:00 2001 From: Bob Bobs Date: Fri, 9 Feb 2024 20:07:56 -0700 Subject: [PATCH] fix(delta): MemberResponse only include roles member has --- crates/quark/src/impl/mongo/servers/server_member.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/quark/src/impl/mongo/servers/server_member.rs b/crates/quark/src/impl/mongo/servers/server_member.rs index d4fcd7e2..0edb0046 100644 --- a/crates/quark/src/impl/mongo/servers/server_member.rs +++ b/crates/quark/src/impl/mongo/servers/server_member.rs @@ -22,10 +22,14 @@ impl AbstractServerMember for MongoDb { } async fn fetch_member_with_roles(&self, server: &str, user: &str) -> Result { - Ok(self - .fetch_member(server, user) - .await? - .with_roles(self.fetch_server(server).await?.roles)) + let member = self.fetch_member(server, user).await?; + let server_roles = self.fetch_server(server).await?.roles; + let roles = member + .roles + .iter() + .filter_map(|id| server_roles.get(id).map(|r| (id.clone(), r.clone()))) + .collect(); + Ok(MemberWithRoles { member, roles }) } async fn insert_member(&self, member: &Member) -> Result<()> {