mirror of
https://github.com/element-hq/synapse.git
synced 2026-05-25 16:24:06 +00:00
Add admin_override
This commit is contained in:
@@ -440,6 +440,11 @@ class FilteredEvent:
|
||||
)
|
||||
return cls(event=event, membership=None)
|
||||
|
||||
@classmethod
|
||||
def admin_override(cls, event: "EventBase") -> "FilteredEvent":
|
||||
"""Wrap an event that bypasses visibility filtering due to admin privileges."""
|
||||
return cls(event=event, membership=None)
|
||||
|
||||
|
||||
@attr.s(slots=True, frozen=True, auto_attribs=True)
|
||||
class SerializeEventConfig:
|
||||
|
||||
@@ -692,7 +692,7 @@ class PaginationHandler:
|
||||
is_peeking=(member_event_id is None),
|
||||
)
|
||||
else:
|
||||
client_events = [FilteredEvent(event=e, membership=None) for e in events]
|
||||
client_events = [FilteredEvent.admin_override(e) for e in events]
|
||||
|
||||
client_events_result: list[FilteredEvent] = client_events
|
||||
|
||||
|
||||
@@ -1918,7 +1918,7 @@ class RoomContextHandler:
|
||||
|
||||
async def filter_evts(events: list[EventBase]) -> list[FilteredEvent]:
|
||||
if use_admin_priviledge:
|
||||
return [FilteredEvent(event=e, membership=None) for e in events]
|
||||
return [FilteredEvent.admin_override(e) for e in events]
|
||||
return await filter_and_transform_events_for_client(
|
||||
self._storage_controllers,
|
||||
user.to_string(),
|
||||
|
||||
@@ -67,7 +67,7 @@ class EventRestServlet(RestServlet):
|
||||
)
|
||||
res = {
|
||||
"event": await self._event_serializer.serialize_event(
|
||||
FilteredEvent(event=event, membership=None),
|
||||
FilteredEvent.admin_override(event),
|
||||
self._clock.time_msec(),
|
||||
config=config,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user