mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-23 18:15:53 +03:00
Merge branch 'new_state_resolution' of github.com:matrix-org/synapse into rejections_storage
This commit is contained in:
commit
875a481a1e
1 changed files with 6 additions and 8 deletions
|
@ -37,13 +37,15 @@ def _get_state_key_from_event(event):
|
|||
KeyStateTuple = namedtuple("KeyStateTuple", ("context", "type", "state_key"))
|
||||
|
||||
|
||||
AuthEventTypes = (EventTypes.Create, EventTypes.Member, EventTypes.PowerLevels,)
|
||||
|
||||
|
||||
class StateHandler(object):
|
||||
""" Responsible for doing state conflict resolution.
|
||||
"""
|
||||
|
||||
def __init__(self, hs):
|
||||
self.store = hs.get_datastore()
|
||||
# self.auth = hs.get_auth()
|
||||
self.hs = hs
|
||||
|
||||
@defer.inlineCallbacks
|
||||
|
@ -215,7 +217,7 @@ class StateHandler(object):
|
|||
|
||||
auth_events = {
|
||||
k: e for k, e in unconflicted_state.items()
|
||||
if k[0] in (EventTypes.Create, EventTypes.Member, EventTypes.PowerLevels,)
|
||||
if k[0] in AuthEventTypes
|
||||
}
|
||||
|
||||
try:
|
||||
|
@ -240,10 +242,6 @@ class StateHandler(object):
|
|||
1. power levels
|
||||
2. memberships
|
||||
3. other events.
|
||||
|
||||
:param conflicted_state:
|
||||
:param auth_events:
|
||||
:return:
|
||||
"""
|
||||
resolved_state = {}
|
||||
power_key = (EventTypes.PowerLevels, "")
|
||||
|
@ -295,7 +293,7 @@ class StateHandler(object):
|
|||
# get around circular deps.
|
||||
self.hs.get_auth().check(event, auth_events)
|
||||
return event
|
||||
except AuthError as e:
|
||||
except AuthError:
|
||||
pass
|
||||
|
||||
# Oh dear.
|
||||
|
@ -305,4 +303,4 @@ class StateHandler(object):
|
|||
def key_func(e):
|
||||
return -int(e.depth), hashlib.sha1(e.event_id).hexdigest()
|
||||
|
||||
return sorted(events, key=key_func)
|
||||
return sorted(events, key=key_func)
|
||||
|
|
Loading…
Reference in a new issue