mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-13 12:16:54 +00:00
fix(sync): Wake local target user after membership changes are committed
This commit is contained in:
1 parent
a7892b296f
commit
08c22b5fcc
3 files changed
+25
No files matched your search
@@ -0,0 +1 @@
|
||||
Fixed local invites and invite acceptances not being reflected in sync promptly. Contributed by @eleboucher
|
||||
@@ -132,6 +132,18 @@ impl super::Service {
|
||||
|
||||
self.services.sync.wake_all_joined(&room_id).await;
|
||||
|
||||
if *pdu.kind() == TimelineEventType::RoomMember {
|
||||
if let Some(target_user) = pdu
|
||||
.state_key
|
||||
.as_ref()
|
||||
.and_then(|state_key| UserId::parse(state_key.as_str()).ok())
|
||||
{
|
||||
if self.services.globals.user_is_local(&target_user) {
|
||||
self.services.sync.wake(&target_user).await;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Some(pdu_id))
|
||||
}
|
||||
|
||||
|
||||
@@ -155,6 +155,18 @@ impl super::Service {
|
||||
|
||||
self.services.sync.wake_all_joined(&room_id).await;
|
||||
|
||||
if *pdu.kind() == TimelineEventType::RoomMember {
|
||||
if let Some(target_user) = pdu
|
||||
.state_key
|
||||
.as_ref()
|
||||
.and_then(|state_key| UserId::parse(state_key.as_str()).ok())
|
||||
{
|
||||
if self.services.globals.user_is_local(&target_user) {
|
||||
self.services.sync.wake(&target_user).await;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let mut servers: HashSet<OwnedServerName> = self
|
||||
.services
|
||||
.state_cache
|
||||
|
||||
Reference in new issue
Block a user