Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 93f84e0

Browse files
committed
FIXUP: Making get_event_context a bit more paranoid
1 parent b755f60 commit 93f84e0

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

synapse/handlers/room.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
from synapse.api.room_versions import KNOWN_ROOM_VERSIONS, RoomVersion
3939
from synapse.events import EventBase
4040
from synapse.events.utils import copy_power_levels_contents
41+
from synapse.rest.admin._base import assert_user_is_admin
4142
from synapse.storage.state import StateFilter
4243
from synapse.types import (
4344
JsonDict,
@@ -997,13 +998,14 @@ async def _generate_room_id(
997998
class RoomContextHandler:
998999
def __init__(self, hs: "HomeServer"):
9991000
self.hs = hs
1001+
self.auth = hs.get_auth()
10001002
self.store = hs.get_datastore()
10011003
self.storage = hs.get_storage()
10021004
self.state_store = self.storage.state
10031005

10041006
async def get_event_context(
10051007
self,
1006-
user: UserID,
1008+
requester: Requester,
10071009
room_id: str,
10081010
event_id: str,
10091011
limit: int,
@@ -1014,7 +1016,7 @@ async def get_event_context(
10141016
in a room.
10151017
10161018
Args:
1017-
user
1019+
requester
10181020
room_id
10191021
event_id
10201022
limit: The maximum number of events to return in total
@@ -1027,6 +1029,10 @@ async def get_event_context(
10271029
Returns:
10281030
dict, or None if the event isn't found
10291031
"""
1032+
user = requester.user
1033+
if use_admin_priviledge:
1034+
await assert_user_is_admin(self.auth, requester.user)
1035+
10301036
before_limit = math.floor(limit / 2.0)
10311037
after_limit = limit - before_limit
10321038

synapse/rest/admin/rooms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ async def on_GET(self, request, room_id, event_id):
600600
event_filter = None
601601

602602
results = await self.room_context_handler.get_event_context(
603-
requester.user,
603+
requester,
604604
room_id,
605605
event_id,
606606
limit,

synapse/rest/client/v1/room.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ async def on_GET(self, request, room_id, event_id):
650650
event_filter = None
651651

652652
results = await self.room_context_handler.get_event_context(
653-
requester.user, room_id, event_id, limit, event_filter
653+
requester, room_id, event_id, limit, event_filter
654654
)
655655

656656
if not results:

0 commit comments

Comments
 (0)