mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-07-30 21:12:45 +00:00
Implement history visibility on /messages
, /context
, /sync
(#2511)
* Add possibility to set history_visibility and user AccountType * Add new DB queries * Add actual history_visibility changes for /messages * Add passing tests * Extract check function * Cleanup * Cleanup * Fix build on 386 * Move ApplyHistoryVisibilityFilter to internal * Move queries to topology table * Add filtering to /sync and /context Some cleanup * Add passing tests; Remove failing tests :( * Re-add passing tests * Move filtering to own function to avoid duplication * Re-add passing test * Use newly added GMSL HistoryVisibility * Update gomatrixserverlib * Set the visibility when creating events * Default to shared history visibility * Remove unused query * Update history visibility checks to use gmsl Update tests * Remove unused statement * Update migrations to set "correct" history visibility * Add method to fetch the membership at a given event * Tweaks and logging * Use actual internal rsAPI, default to shared visibility in tests * Revert "Move queries to topology table" This reverts commit 4f0d41be9c194a46379796435ce73e79203edbd6. * Remove noise/unneeded code * More cleanup * Try to optimize database requests * Fix imports * PR peview fixes/changes * Move setting history visibility to own migration, be more restrictive * Fix unit tests * Lint * Fix missing entries * Tweaks for incremental syncs * Adapt generic changes Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com> Co-authored-by: kegsay <kegan@matrix.org>
This commit is contained in:
parent
371336c6b5
commit
05cafbd197
31 changed files with 1043 additions and 224 deletions
|
@ -110,8 +110,6 @@ Newly joined room is included in an incremental sync
|
|||
User is offline if they set_presence=offline in their sync
|
||||
Changes to state are included in an incremental sync
|
||||
A change to displayname should appear in incremental /sync
|
||||
Current state appears in timeline in private history
|
||||
Current state appears in timeline in private history with many messages before
|
||||
Rooms a user is invited to appear in an initial sync
|
||||
Rooms a user is invited to appear in an incremental sync
|
||||
Sync can be polled for updates
|
||||
|
@ -458,7 +456,6 @@ After changing password, a different session no longer works by default
|
|||
Read markers appear in incremental v2 /sync
|
||||
Read markers appear in initial v2 /sync
|
||||
Read markers can be updated
|
||||
Local users can peek into world_readable rooms by room ID
|
||||
We can't peek into rooms with shared history_visibility
|
||||
We can't peek into rooms with invited history_visibility
|
||||
We can't peek into rooms with joined history_visibility
|
||||
|
@ -720,4 +717,26 @@ Setting state twice is idempotent
|
|||
Joining room twice is idempotent
|
||||
Inbound federation can return missing events for shared visibility
|
||||
Inbound federation ignores redactions from invalid servers room > v3
|
||||
Joining room twice is idempotent
|
||||
Getting messages going forward is limited for a departed room (SPEC-216)
|
||||
m.room.history_visibility == "shared" allows/forbids appropriately for Guest users
|
||||
m.room.history_visibility == "invited" allows/forbids appropriately for Guest users
|
||||
m.room.history_visibility == "default" allows/forbids appropriately for Guest users
|
||||
m.room.history_visibility == "shared" allows/forbids appropriately for Real users
|
||||
m.room.history_visibility == "invited" allows/forbids appropriately for Real users
|
||||
m.room.history_visibility == "default" allows/forbids appropriately for Real users
|
||||
Guest users can sync from world_readable guest_access rooms if joined
|
||||
Guest users can sync from shared guest_access rooms if joined
|
||||
Guest users can sync from invited guest_access rooms if joined
|
||||
Guest users can sync from joined guest_access rooms if joined
|
||||
Guest users can sync from default guest_access rooms if joined
|
||||
Real users can sync from world_readable guest_access rooms if joined
|
||||
Real users can sync from shared guest_access rooms if joined
|
||||
Real users can sync from invited guest_access rooms if joined
|
||||
Real users can sync from joined guest_access rooms if joined
|
||||
Real users can sync from default guest_access rooms if joined
|
||||
Only see history_visibility changes on boundaries
|
||||
Current state appears in timeline in private history
|
||||
Current state appears in timeline in private history with many messages before
|
||||
Local users can peek into world_readable rooms by room ID
|
||||
Newly joined room includes presence in incremental sync
|
Loading…
Add table
Add a link
Reference in a new issue