diff options
author | Erik Johnston <erik@matrix.org> | 2016-09-08 11:53:05 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-09-08 11:53:05 +0100 |
commit | 791658b57677cc60b02b969ab3cb617da8cc62f9 (patch) | |
tree | 411d20b22cca6159cc55c52dff164958f973a1ac /synapse/rest/client/v1/room.py | |
parent | Merge pull request #1079 from matrix-org/erikj/state_seqscan (diff) | |
download | synapse-791658b57677cc60b02b969ab3cb617da8cc62f9.tar.xz |
Add server param to /publicRooms
Diffstat (limited to 'synapse/rest/client/v1/room.py')
-rw-r--r-- | synapse/rest/client/v1/room.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/synapse/rest/client/v1/room.py b/synapse/rest/client/v1/room.py index 0d81757010..7971e53010 100644 --- a/synapse/rest/client/v1/room.py +++ b/synapse/rest/client/v1/room.py @@ -295,15 +295,26 @@ class PublicRoomListRestServlet(ClientV1RestServlet): @defer.inlineCallbacks def on_GET(self, request): + server = request.args.get("server", [None])[0] + try: yield self.auth.get_user_by_req(request) - except AuthError: - # This endpoint isn't authed, but its useful to know who's hitting - # it if they *do* supply an access token - pass + except AuthError as e: + # We allow people to not be authed if they're just looking at our + # room list, but require auth when we proxy the request. + # In both cases we call the auth function, as that has the side + # effect of logging who issued this request if an access token was + # provided. + if server: + raise e + else: + pass handler = self.hs.get_room_list_handler() - data = yield handler.get_aggregated_public_room_list() + if server: + data = yield handler.get_remote_public_room_list(server) + else: + data = yield handler.get_aggregated_public_room_list() defer.returnValue((200, data)) |