summary refs log tree commit diff
path: root/synapse/api
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/api')
-rw-r--r--synapse/api/auth.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/synapse/api/auth.py b/synapse/api/auth.py
index 40c3e9db0d..23a928de16 100644
--- a/synapse/api/auth.py
+++ b/synapse/api/auth.py
@@ -278,18 +278,19 @@ class Auth(object):
 
     @defer.inlineCallbacks
     def check_host_in_room(self, room_id, host):
-        curr_state = yield self.state.get_current_state(room_id)
+        curr_state_id = yield self.state.get_current_state_ids(room_id)
 
-        for event in curr_state.values():
-            if event.type == EventTypes.Member:
+        for (etype, state_key), event_id in curr_state_id.items():
+            if etype == EventTypes.Member:
                 try:
-                    if get_domain_from_id(event.state_key) != host:
+                    if get_domain_from_id(state_key) != host:
                         continue
                 except:
-                    logger.warn("state_key not user_id: %s", event.state_key)
+                    logger.warn("state_key not user_id: %s", state_key)
                     continue
 
-                if event.content["membership"] == Membership.JOIN:
+                event = yield self.store.get_event(event_id, allow_none=True)
+                if event and event.content["membership"] == Membership.JOIN:
                     defer.returnValue(True)
 
         defer.returnValue(False)