Skip to content
Snippets Groups Projects
Commit 0e1900d8 authored by Erik Johnston's avatar Erik Johnston
Browse files

Pull out full state less

parent 721414d9
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -95,15 +95,19 @@ class StateHandler(object):
_, state = yield self.resolve_state_groups(room_id, latest_event_ids)
if event_type:
event_id = state.get((event_type, state_key))
event = None
if event_id:
event = yield self.store.get_event(event_id, allow_none=True)
defer.returnValue(event)
return
state_map = yield self.store.get_events(state.values(), get_prev_content=False)
state = {
key: state_map[e_id] for key, e_id in state.items() if e_id in state_map
}
if event_type:
defer.returnValue(state.get((event_type, state_key)))
return
defer.returnValue(state)
@defer.inlineCallbacks
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment