summary refs log tree commit diff
path: root/synapse/rest/client/v1/room.py
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2017-02-14 15:10:55 +0000
committerDavid Baker <dave@matrix.org>2017-02-14 15:10:55 +0000
commit355d62c499b63f337c484cca6704161a3a05da1d (patch)
tree5caec57a82fdc1c2e0de200d64f9745ad1e81412 /synapse/rest/client/v1/room.py
parentMerge pull request #1891 from matrix-org/dbkr/remove_unused_constants (diff)
downloadsynapse-355d62c499b63f337c484cca6704161a3a05da1d.tar.xz
Make kick & ban reasons work
We somehow specced APIs with reason strings, preserve the content
in the events  and even have the clients display them, but failed
to actually pass the parameter through to the event content.
Diffstat (limited to 'synapse/rest/client/v1/room.py')
-rw-r--r--synapse/rest/client/v1/room.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/synapse/rest/client/v1/room.py b/synapse/rest/client/v1/room.py
index 2ebf5e59a0..728e3df0e3 100644
--- a/synapse/rest/client/v1/room.py
+++ b/synapse/rest/client/v1/room.py
@@ -609,6 +609,10 @@ class RoomMembershipRestServlet(ClientV1RestServlet):
                 raise SynapseError(400, "Missing user_id key.")
             target = UserID.from_string(content["user_id"])
 
+        event_content = None
+        if 'reason' in content and membership_action in ['kick', 'ban']:
+            event_content = {'reason': content['reason']}
+
         yield self.handlers.room_member_handler.update_membership(
             requester=requester,
             target=target,
@@ -616,6 +620,7 @@ class RoomMembershipRestServlet(ClientV1RestServlet):
             action=membership_action,
             txn_id=txn_id,
             third_party_signed=content.get("third_party_signed", None),
+            content=event_content,
         )
 
         defer.returnValue((200, {}))