Add support for inviting people when you create a room

This commit is contained in:
Erik Johnston 2014-09-06 01:10:07 +01:00
parent c03c255304
commit f47f42090d
1 changed files with 26 additions and 0 deletions

View File

@ -65,6 +65,13 @@ class RoomCreationHandler(BaseHandler):
else: else:
room_alias = None room_alias = None
invite_list = config.get("invite", [])
for i in invite_list:
try:
self.hs.parse_userid(i)
except:
raise SynapseError(400, "Invalid user_id: %s" % (i,))
is_public = config.get("visibility", None) == "public" is_public = config.get("visibility", None) == "public"
if room_id: if room_id:
@ -178,6 +185,25 @@ class RoomCreationHandler(BaseHandler):
do_auth=False do_auth=False
) )
content = {"membership": Membership.INVITE}
for invitee in invite_list:
invite_event = self.event_factory.create_event(
etype=RoomMemberEvent.TYPE,
state_key=invitee,
room_id=room_id,
user_id=user_id,
content=content
)
yield self.hs.get_handlers().room_member_handler.change_membership(
invite_event,
do_auth=False
)
yield self.hs.get_handlers().room_member_handler.change_membership(
join_event,
do_auth=False
)
result = {"room_id": room_id} result = {"room_id": room_id}
if room_alias: if room_alias:
result["room_alias"] = room_alias.to_string() result["room_alias"] = room_alias.to_string()