0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-11-18 07:52:56 +01:00

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

Small cleanup PR.

* Removed the unused `is_guest` argument
* Added a safeguard to a (currently) impossible code path, fixing static checking at the same time.
This commit is contained in:
Andrew Morgan 2020-08-26 15:07:35 +01:00 committed by GitHub
parent ed18f32e1b
commit e0d6244beb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 10 deletions

1
changelog.d/8174.misc Normal file
View file

@ -0,0 +1 @@
Remove unused `is_guest` parameter from, and add safeguard to, `MessageHandler.get_room_data`.

View file

@ -95,12 +95,7 @@ class MessageHandler(object):
) )
async def get_room_data( async def get_room_data(
self, self, user_id: str, room_id: str, event_type: str, state_key: str,
user_id: str,
room_id: str,
event_type: str,
state_key: str,
is_guest: bool,
) -> dict: ) -> dict:
""" Get data from a room. """ Get data from a room.
@ -109,11 +104,10 @@ class MessageHandler(object):
room_id room_id
event_type event_type
state_key state_key
is_guest
Returns: Returns:
The path data content. The path data content.
Raises: Raises:
SynapseError if something went wrong. SynapseError or AuthError if the user is not in the room
""" """
( (
membership, membership,
@ -130,6 +124,16 @@ class MessageHandler(object):
[membership_event_id], StateFilter.from_types([key]) [membership_event_id], StateFilter.from_types([key])
) )
data = room_state[membership_event_id].get(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 return data

View file

@ -171,7 +171,6 @@ class RoomStateEventRestServlet(TransactionRestServlet):
room_id=room_id, room_id=room_id,
event_type=event_type, event_type=event_type,
state_key=state_key, state_key=state_key,
is_guest=requester.is_guest,
) )
if not data: if not data:

View file

@ -178,7 +178,7 @@ class RetentionTestCase(unittest.HomeserverTestCase):
message_handler = self.hs.get_message_handler() message_handler = self.hs.get_message_handler()
create_event = self.get_success( create_event = self.get_success(
message_handler.get_room_data( 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=""
) )
) )