Implement MSC2815: allow room moderators to view redacted event content (#12427)

Implements matrix-org/matrix-spec-proposals#2815

Signed-off-by: Tulir Asokan <tulir@maunium.net>
This commit is contained in:
Tulir Asokan 2022-04-20 14:57:39 +03:00 committed by GitHub
parent eed38c5027
commit 4bc8cb4669
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 100 additions and 3 deletions

View file

@ -303,6 +303,24 @@ class EventsWorkerStore(SQLBaseStore):
desc="get_received_ts",
)
async def have_censored_event(self, event_id: str) -> bool:
"""Check if an event has been censored, i.e. if the content of the event has been erased
from the database due to a redaction.
Args:
event_id: The event ID that was redacted.
Returns:
True if the event has been censored, False otherwise.
"""
censored_redactions_list = await self.db_pool.simple_select_onecol(
table="redactions",
keyvalues={"redacts": event_id},
retcol="have_censored",
desc="get_have_censored",
)
return any(censored_redactions_list)
# Inform mypy that if allow_none is False (the default) then get_event
# always returns an EventBase.
@overload