mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-16 21:23:52 +01:00
Check redaction state when event is pulled out of the database
This commit is contained in:
parent
6d23ec2111
commit
4db252c073
1 changed files with 13 additions and 0 deletions
|
@ -466,6 +466,19 @@ class EventsWorkerStore(SQLBaseStore):
|
||||||
# will serialise this field correctly
|
# will serialise this field correctly
|
||||||
redacted_event.unsigned["redacted_because"] = because
|
redacted_event.unsigned["redacted_because"] = because
|
||||||
|
|
||||||
|
# Starting in room version v3, some redactions need to be
|
||||||
|
# rechecked if we didn't have the redacted event at the
|
||||||
|
# time, so we recheck on read instead.
|
||||||
|
if because.internal_metadata.need_to_check_redaction():
|
||||||
|
expected_domain = get_domain_from_id(original_ev.sender)
|
||||||
|
if get_domain_from_id(because.sender) == expected_domain:
|
||||||
|
# This redaction event is allowed. Mark as not needing a
|
||||||
|
# recheck.
|
||||||
|
because.internal_metadata.recheck_redaction = False
|
||||||
|
else:
|
||||||
|
# Senders don't match, so the event is actually redacted
|
||||||
|
redacted_event = None
|
||||||
|
|
||||||
cache_entry = _EventCacheEntry(
|
cache_entry = _EventCacheEntry(
|
||||||
event=original_ev,
|
event=original_ev,
|
||||||
redacted_event=redacted_event,
|
redacted_event=redacted_event,
|
||||||
|
|
Loading…
Reference in a new issue