summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Wagner-Hall <dawagner@gmail.com>2015-11-11 17:49:44 +0000
committerDaniel Wagner-Hall <dawagner@gmail.com>2015-11-11 17:49:44 +0000
commite93d550b79e7e485bb2866ef956fca2379cefac7 (patch)
treeb3b103dc590f581d060e7e5ca22c35f3fc47b890
parentMerge pull request #358 from matrix-org/daniel/publicwritable (diff)
downloadsynapse-e93d550b79e7e485bb2866ef956fca2379cefac7.tar.xz
Allow guests to access room context API
-rw-r--r--synapse/handlers/room.py12
-rw-r--r--synapse/rest/client/v1/room.py4
2 files changed, 11 insertions, 5 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 7d18218cd9..0266926fc7 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -765,7 +765,7 @@ class RoomListHandler(BaseHandler):
 
 class RoomContextHandler(BaseHandler):
     @defer.inlineCallbacks
-    def get_event_context(self, user, room_id, event_id, limit):
+    def get_event_context(self, user, room_id, event_id, limit, is_guest):
         """Retrieves events, pagination tokens and state around a given event
         in a room.
 
@@ -789,11 +789,17 @@ class RoomContextHandler(BaseHandler):
         )
 
         results["events_before"] = yield self._filter_events_for_client(
-            user.to_string(), results["events_before"]
+            user.to_string(),
+            results["events_before"],
+            is_guest=is_guest,
+            require_all_visible_for_guests=False
         )
 
         results["events_after"] = yield self._filter_events_for_client(
-            user.to_string(), results["events_after"]
+            user.to_string(),
+            results["events_after"],
+            is_guest=is_guest,
+            require_all_visible_for_guests=False
         )
 
         if results["events_after"]:
diff --git a/synapse/rest/client/v1/room.py b/synapse/rest/client/v1/room.py
index 03ac073926..c583025e30 100644
--- a/synapse/rest/client/v1/room.py
+++ b/synapse/rest/client/v1/room.py
@@ -417,12 +417,12 @@ class RoomEventContext(ClientV1RestServlet):
 
     @defer.inlineCallbacks
     def on_GET(self, request, room_id, event_id):
-        user, _ = yield self.auth.get_user_by_req(request)
+        user, _, is_guest = yield self.auth.get_user_by_req(request, allow_guest=True)
 
         limit = int(request.args.get("limit", [10])[0])
 
         results = yield self.handlers.room_context_handler.get_event_context(
-            user, room_id, event_id, limit,
+            user, room_id, event_id, limit, is_guest
         )
 
         time_now = self.clock.time_msec()