[fractal] member: Use state key for sanity check



commit b55752c1a0c042abb5190076fd3e6563e58022b2
Author: Kirill Schmidt <kirill schmidt teckids org>
Date:   Thu Aug 11 18:44:04 2022 +0200

    member: Use state key for sanity check

 src/session/room/member.rs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/src/session/room/member.rs b/src/session/room/member.rs
index 5b10224fd..cfabd09d8 100644
--- a/src/session/room/member.rs
+++ b/src/session/room/member.rs
@@ -185,7 +185,7 @@ impl Member {
 
     /// Update the user based on the room member state event
     pub fn update_from_member_event(&self, event: &impl MemberEvent) {
-        if event.sender() != &*self.user_id() {
+        if event.state_key() != &*self.user_id() {
             log::error!("Tried Member update from MemberEvent with wrong user ID.");
             return;
         };
@@ -206,6 +206,7 @@ impl Member {
 pub trait MemberEvent {
     fn sender(&self) -> &UserId;
     fn content(&self) -> &RoomMemberEventContent;
+    fn state_key(&self) -> &UserId;
 
     fn avatar_url(&self) -> Option<OwnedMxcUri> {
         self.content().avatar_url.to_owned()
@@ -230,6 +231,9 @@ impl MemberEvent for OriginalSyncStateEvent<RoomMemberEventContent> {
     fn content(&self) -> &RoomMemberEventContent {
         &self.content
     }
+    fn state_key(&self) -> &UserId {
+        &self.state_key
+    }
 }
 impl MemberEvent for StrippedStateEvent<RoomMemberEventContent> {
     fn sender(&self) -> &UserId {
@@ -238,4 +242,7 @@ impl MemberEvent for StrippedStateEvent<RoomMemberEventContent> {
     fn content(&self) -> &RoomMemberEventContent {
         &self.content
     }
+    fn state_key(&self) -> &UserId {
+        &self.state_key
+    }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]