From 3e6f4d8acafdcd14a57faea3b8a910c6217d1d1b Mon Sep 17 00:00:00 2001 From: dklimpel <5740567+dklimpel@users.noreply.github.com> Date: Sun, 5 Apr 2020 13:06:18 +0200 Subject: [PATCH] Add functions for delete rooms and users --- src/components/users.js | 1 - src/synapse/dataProvider.js | 54 +++++++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/components/users.js b/src/components/users.js index 068b59e..1a42853 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -32,7 +32,6 @@ export const UserList = props => ( {...props} filters={} filterDefaultValues={{ guests: true, deactivated: false }} - bulkActionButtons={false} > { return json.next_token ? parseInt(json.next_token, 10) + perPage : from + json.users.length; }, + delete_path: "/_synapse/admin/v1/deactivate", }, rooms: { path: "/_synapse/admin/v1/rooms", @@ -41,6 +42,7 @@ const resourceMap = { total: json => { return json.total_rooms; }, + delete_path: "/_synapse/admin/v1/purge_room", }, }; @@ -197,10 +199,21 @@ const dataProvider = { if (!homeserver || !(resource in resourceMap)) return Promise.reject(); const res = resourceMap[resource]; + const homeserver_url = homeserver + res.delete_path; - const homeserver_url = homeserver + res.path; - return jsonClient(`${homeserver_url}/${params.id}`, { - method: "DELETE", + var request_url; + var request_body; + if (res.data === "users") { + request_url = `${homeserver_url}/${params.id}`; + request_body = { erase: true }; + } else if (res.data === "rooms") { + request_url = `${homeserver_url}`; + request_body = { room_id: `${params.id}` }; + } + + return jsonClient(request_url, { + method: "POST", + body: JSON.stringify(request_body), }).then(({ json }) => ({ data: json, })); @@ -212,18 +225,31 @@ const dataProvider = { if (!homeserver || !(resource in resourceMap)) return Promise.reject(); const res = resourceMap[resource]; + const homeserver_url = homeserver + res.delete_path; - const homeserver_url = homeserver + res.path; - return Promise.all( - params.ids.map(id => - jsonClient(`${homeserver_url}/${id}`, { - method: "DELETE", - body: JSON.stringify(params.data, filterNullValues), - }).then(responses => ({ - data: responses.map(({ json }) => json), - })) - ) - ); + if (res.data === "users") { + return Promise.all( + params.ids.map(id => + jsonClient(`${homeserver_url}/${id}`, { + method: "POST", + body: JSON.stringify({ erase: true }), + }).then(json => ({ + data: json, + })) + ) + ); + } else if (res.data === "rooms") { + return Promise.all( + params.ids.map(id => + jsonClient(`${homeserver_url}`, { + method: "POST", + body: JSON.stringify({ room_id: `${id}` }), + }).then(json => ({ + data: json, + })) + ) + ); + } }, };