Use state groups to get current state. Make join dance actually work.

This commit is contained in:
Erik Johnston 2014-10-17 18:56:42 +01:00
parent f71627567b
commit 5ffe5ab43f
10 changed files with 231 additions and 72 deletions

View file

@ -22,6 +22,7 @@ from synapse.api.errors import AuthError, StoreError, Codes, SynapseError
from synapse.api.events.room import (
RoomMemberEvent, RoomPowerLevelsEvent, RoomRedactionEvent,
RoomJoinRulesEvent, RoomOpsPowerLevelsEvent, InviteJoinEvent,
RoomCreateEvent,
)
from synapse.util.logutils import log_function
@ -59,6 +60,10 @@ class Auth(object):
is_state = hasattr(event, "state_key")
if event.type == RoomCreateEvent.TYPE:
# FIXME
defer.returnValue(True)
if event.type == RoomMemberEvent.TYPE:
yield self._can_replace_state(event)
allowed = yield self.is_membership_change_allowed(event)