summary refs log tree commit diff
path: root/synapse/rest
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2018-02-08 18:44:52 +0000
committerRichard van der Hoff <richard@matrix.org>2018-02-09 13:07:41 +0000
commit74fcbf741b3a7b95b5cc44478050e8a40fb7dc46 (patch)
tree99deb06ce2673f82ee4be8b5c36ddf0b51954ede /synapse/rest
parentpurge: Move cache invalidation to more appropriate place (diff)
downloadsynapse-74fcbf741b3a7b95b5cc44478050e8a40fb7dc46.tar.xz
delete_local_events for purge_history
Add a flag which makes the purger delete local events
Diffstat (limited to 'synapse/rest')
-rw-r--r--synapse/rest/client/v1/admin.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/synapse/rest/client/v1/admin.py b/synapse/rest/client/v1/admin.py
index 5022808ea9..f954d2ea65 100644
--- a/synapse/rest/client/v1/admin.py
+++ b/synapse/rest/client/v1/admin.py
@@ -128,7 +128,16 @@ class PurgeHistoryRestServlet(ClientV1RestServlet):
         if not is_admin:
             raise AuthError(403, "You are not a server admin")
 
-        yield self.handlers.message_handler.purge_history(room_id, event_id)
+        body = parse_json_object_from_request(request, allow_empty_body=True)
+
+        delete_local_events = bool(
+            body.get("delete_local_history", False)
+        )
+
+        yield self.handlers.message_handler.purge_history(
+            room_id, event_id,
+            delete_local_events=delete_local_events,
+        )
 
         defer.returnValue((200, {}))