forked from MirrorHub/synapse
Implement a kick api
This commit is contained in:
parent
7c4ce957c7
commit
1b491e50c9
1 changed files with 5 additions and 2 deletions
|
@ -388,7 +388,7 @@ class RoomMembershipRestServlet(RestServlet):
|
||||||
def register(self, http_server):
|
def register(self, http_server):
|
||||||
# /rooms/$roomid/[invite|join|leave]
|
# /rooms/$roomid/[invite|join|leave]
|
||||||
PATTERN = ("/rooms/(?P<room_id>[^/]*)/" +
|
PATTERN = ("/rooms/(?P<room_id>[^/]*)/" +
|
||||||
"(?P<membership_action>join|invite|leave|ban)")
|
"(?P<membership_action>join|invite|leave|ban|kick)")
|
||||||
register_txn_path(self, PATTERN, http_server)
|
register_txn_path(self, PATTERN, http_server)
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
|
@ -399,11 +399,14 @@ class RoomMembershipRestServlet(RestServlet):
|
||||||
|
|
||||||
# target user is you unless it is an invite
|
# target user is you unless it is an invite
|
||||||
state_key = user.to_string()
|
state_key = user.to_string()
|
||||||
if membership_action in ["invite", "ban"]:
|
if membership_action in ["invite", "ban", "kick"]:
|
||||||
if "user_id" not in content:
|
if "user_id" not in content:
|
||||||
raise SynapseError(400, "Missing user_id key.")
|
raise SynapseError(400, "Missing user_id key.")
|
||||||
state_key = content["user_id"]
|
state_key = content["user_id"]
|
||||||
|
|
||||||
|
if membership_action == "kick":
|
||||||
|
membership_action = "leave"
|
||||||
|
|
||||||
event = self.event_factory.create_event(
|
event = self.event_factory.create_event(
|
||||||
etype=RoomMemberEvent.TYPE,
|
etype=RoomMemberEvent.TYPE,
|
||||||
content={"membership": unicode(membership_action)},
|
content={"membership": unicode(membership_action)},
|
||||||
|
|
Loading…
Reference in a new issue