Implement power level lists, default power levels and send_evnet_level/add_state_level events.

This commit is contained in:
Erik Johnston 2014-09-01 13:44:19 +01:00
parent 10efca1a74
commit 865469f233
7 changed files with 217 additions and 47 deletions

View file

@ -21,7 +21,8 @@ from synapse.api.constants import Membership, JoinRules
from synapse.api.errors import StoreError, SynapseError
from synapse.api.events.room import (
RoomMemberEvent, RoomCreateEvent, RoomPowerLevelsEvent,
RoomJoinRulesEvent, RoomDefaultLevelEvent,
RoomJoinRulesEvent, RoomAddStateLevelEvent,
RoomSendEventLevelEvent,
)
from synapse.util import stringutils
from ._base import BaseRoomHandler
@ -152,7 +153,7 @@ class RoomCreationHandler(BaseRoomHandler):
creation_event = self.event_factory.create_event(
etype=RoomCreateEvent.TYPE,
content={"creator": creator.to_string()},
content={"creator": creator.to_string(), "default": 0},
**event_keys
)
@ -162,12 +163,6 @@ class RoomCreationHandler(BaseRoomHandler):
**event_keys
)
default_level_event = self.event_factory.create_event(
etype=RoomDefaultLevelEvent.TYPE,
content={"default_level": 0},
**event_keys
)
join_rule = JoinRules.PUBLIC if is_public else JoinRules.INVITE
join_rules_event = self.event_factory.create_event(
etype=RoomJoinRulesEvent.TYPE,
@ -175,7 +170,25 @@ class RoomCreationHandler(BaseRoomHandler):
**event_keys
)
return [creation_event, power_levels_event, default_level_event, join_rules_event]
add_state_event = self.event_factory.create_event(
etype=RoomAddStateLevelEvent.TYPE,
content={"level": 10},
**event_keys
)
send_event = self.event_factory.create_event(
etype=RoomSendEventLevelEvent.TYPE,
content={"level": 0},
**event_keys
)
return [
creation_event,
power_levels_event,
join_rules_event,
add_state_event,
send_event,
]
class RoomMemberHandler(BaseRoomHandler):