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

Remove unused parameter from, and add safeguard in, get_room_data #8174

Merged
merged 5 commits into from
Aug 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/8174.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Remove unused `is_guest` parameter from, and add safeguard to, `MessageHandler.get_room_data`.
20 changes: 12 additions & 8 deletions synapse/handlers/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,7 @@ def __init__(self, hs):
)

async def get_room_data(
self,
user_id: str,
room_id: str,
event_type: str,
state_key: str,
is_guest: bool,
self, user_id: str, room_id: str, event_type: str, state_key: str,
) -> dict:
""" Get data from a room.

Expand All @@ -109,11 +104,10 @@ async def get_room_data(
room_id
event_type
state_key
is_guest
Returns:
The path data content.
Raises:
SynapseError if something went wrong.
SynapseError or AuthError if the user is not in the room
"""
(
membership,
Expand All @@ -130,6 +124,16 @@ async def get_room_data(
[membership_event_id], StateFilter.from_types([key])
)
data = room_state[membership_event_id].get(key)
else:
# check_user_in_room_or_world_readable, if it doesn't raise an AuthError, should
# only ever return a Membership.JOIN/LEAVE object
#
# Safeguard in case it returned something else
logger.error(
"Attempted to retrieve data from a room for a user that has never been in it. "
"This should not have happened."
)
raise SynapseError(403, "User not in room", errcode=Codes.FORBIDDEN)

return data

Expand Down
1 change: 0 additions & 1 deletion synapse/rest/client/v1/room.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ async def on_GET(self, request, room_id, event_type, state_key):
room_id=room_id,
event_type=event_type,
state_key=state_key,
is_guest=requester.is_guest,
)

if not data:
Expand Down
2 changes: 1 addition & 1 deletion tests/rest/client/test_retention.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ def _test_retention_event_purged(self, room_id: str, increment: float):
message_handler = self.hs.get_message_handler()
create_event = self.get_success(
message_handler.get_room_data(
self.user_id, room_id, EventTypes.Create, state_key="", is_guest=False
self.user_id, room_id, EventTypes.Create, state_key=""
)
)

Expand Down