|
|
|
|
@ -149,15 +149,7 @@ pub async fn sync_events_route(
@@ -149,15 +149,7 @@ pub async fn sync_events_route(
|
|
|
|
|
device_list_updates.extend( |
|
|
|
|
db.rooms |
|
|
|
|
.room_members(&room_id) |
|
|
|
|
.filter_map(|user_id| { |
|
|
|
|
Some( |
|
|
|
|
UserId::try_from(user_id.ok()?.clone()) |
|
|
|
|
.map_err(|_| { |
|
|
|
|
Error::bad_database("Invalid member event state key in db.") |
|
|
|
|
}) |
|
|
|
|
.ok()?, |
|
|
|
|
) |
|
|
|
|
}) |
|
|
|
|
.filter_map(|user_id| Some(user_id.ok()?)) |
|
|
|
|
.filter(|user_id| { |
|
|
|
|
// Don't send key updates from the sender to the sender
|
|
|
|
|
sender_id != user_id |
|
|
|
|
@ -491,9 +483,7 @@ pub async fn sync_events_route(
@@ -491,9 +483,7 @@ pub async fn sync_events_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for user_id in left_encrypted_users { |
|
|
|
|
// If the user doesn't share an encrypted room with the target anymore, we need to tell
|
|
|
|
|
// them
|
|
|
|
|
if db |
|
|
|
|
let user_target_encrypted = db |
|
|
|
|
.rooms |
|
|
|
|
.get_shared_rooms(vec![sender_id.clone(), user_id.clone()]) |
|
|
|
|
.filter_map(|r| r.ok()) |
|
|
|
|
@ -505,8 +495,10 @@ pub async fn sync_events_route(
@@ -505,8 +495,10 @@ pub async fn sync_events_route(
|
|
|
|
|
.is_some(), |
|
|
|
|
) |
|
|
|
|
}) |
|
|
|
|
.all(|encrypted| !encrypted) |
|
|
|
|
{ |
|
|
|
|
.all(|encrypted| !encrypted); |
|
|
|
|
// If the user doesn't share an encrypted room with the target anymore, we need to tell
|
|
|
|
|
// them
|
|
|
|
|
if user_target_encrypted { |
|
|
|
|
device_list_left.insert(user_id); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|