From 4b594516ec5fe6d849663d877db5a0614de03089 Mon Sep 17 00:00:00 2001
From: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Tue, 12 Sep 2023 11:43:12 +0200
Subject: [feature] Allow admins to expire remote public keys; refetch expired
 keys on demand (#2183)
---
 web/source/settings/admin/actions.js               | 62 ----------------------
 .../settings/admin/actions/keys/expireremote.jsx   | 61 +++++++++++++++++++++
 web/source/settings/admin/actions/keys/index.jsx   | 32 +++++++++++
 .../settings/admin/actions/media/cleanup.jsx       | 59 ++++++++++++++++++++
 web/source/settings/admin/actions/media/index.jsx  | 32 +++++++++++
 5 files changed, 184 insertions(+), 62 deletions(-)
 delete mode 100644 web/source/settings/admin/actions.js
 create mode 100644 web/source/settings/admin/actions/keys/expireremote.jsx
 create mode 100644 web/source/settings/admin/actions/keys/index.jsx
 create mode 100644 web/source/settings/admin/actions/media/cleanup.jsx
 create mode 100644 web/source/settings/admin/actions/media/index.jsx
(limited to 'web/source/settings/admin')
diff --git a/web/source/settings/admin/actions.js b/web/source/settings/admin/actions.js
deleted file mode 100644
index 7f25299e5..000000000
--- a/web/source/settings/admin/actions.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-	GoToSocial
-	Copyright (C) GoToSocial Authors admin@gotosocial.org
-	SPDX-License-Identifier: AGPL-3.0-or-later
-
-	This program is free software: you can redistribute it and/or modify
-	it under the terms of the GNU Affero General Public License as published by
-	the Free Software Foundation, either version 3 of the License, or
-	(at your option) any later version.
-
-	This program is distributed in the hope that it will be useful,
-	but WITHOUT ANY WARRANTY; without even the implied warranty of
-	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-	GNU Affero General Public License for more details.
-
-	You should have received a copy of the GNU Affero General Public License
-	along with this program.  If not, see .
-*/
-
-"use strict";
-
-const React = require("react");
-
-const query = require("../lib/query");
-
-const { useTextInput } = require("../lib/form");
-const { TextInput } = require("../components/form/inputs");
-
-const MutationButton = require("../components/form/mutation-button");
-
-module.exports = function AdminActionPanel() {
-	const daysField = useTextInput("days", { defaultValue: 30 });
-
-	const [mediaCleanup, mediaCleanupResult] = query.useMediaCleanupMutation();
-
-	function submitMediaCleanup(e) {
-		e.preventDefault();
-		mediaCleanup(daysField.value);
-	}
-
-	return (
-		<>
-			
Admin Actions
-			
-		>
-	);
-};
\ No newline at end of file
diff --git a/web/source/settings/admin/actions/keys/expireremote.jsx b/web/source/settings/admin/actions/keys/expireremote.jsx
new file mode 100644
index 000000000..b9045a7ed
--- /dev/null
+++ b/web/source/settings/admin/actions/keys/expireremote.jsx
@@ -0,0 +1,61 @@
+/*
+	GoToSocial
+	Copyright (C) GoToSocial Authors admin@gotosocial.org
+	SPDX-License-Identifier: AGPL-3.0-or-later
+
+	This program is free software: you can redistribute it and/or modify
+	it under the terms of the GNU Affero General Public License as published by
+	the Free Software Foundation, either version 3 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU Affero General Public License for more details.
+
+	You should have received a copy of the GNU Affero General Public License
+	along with this program.  If not, see .
+*/
+
+"use strict";
+
+const React = require("react");
+
+const query = require("../../../lib/query");
+
+const { useTextInput } = require("../../../lib/form");
+const { TextInput } = require("../../../components/form/inputs");
+
+const MutationButton = require("../../../components/form/mutation-button");
+
+module.exports = function ExpireRemote({}) {
+	const domainField = useTextInput("domain");
+
+	const [expire, expireResult] = query.useInstanceKeysExpireMutation();
+
+	function submitExpire(e) {
+		e.preventDefault();
+		expire(domainField.value);
+	}
+
+	return (
+		
+	);
+};
diff --git a/web/source/settings/admin/actions/keys/index.jsx b/web/source/settings/admin/actions/keys/index.jsx
new file mode 100644
index 000000000..b40835c12
--- /dev/null
+++ b/web/source/settings/admin/actions/keys/index.jsx
@@ -0,0 +1,32 @@
+/*
+	GoToSocial
+	Copyright (C) GoToSocial Authors admin@gotosocial.org
+	SPDX-License-Identifier: AGPL-3.0-or-later
+
+	This program is free software: you can redistribute it and/or modify
+	it under the terms of the GNU Affero General Public License as published by
+	the Free Software Foundation, either version 3 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU Affero General Public License for more details.
+
+	You should have received a copy of the GNU Affero General Public License
+	along with this program.  If not, see .
+*/
+
+"use strict";
+
+const React = require("react");
+const ExpireRemote = require("./expireremote");
+
+module.exports = function Keys() {
+	return (
+		<>
+			Key Actions
+			
+		>
+	);
+};
diff --git a/web/source/settings/admin/actions/media/cleanup.jsx b/web/source/settings/admin/actions/media/cleanup.jsx
new file mode 100644
index 000000000..61ee15258
--- /dev/null
+++ b/web/source/settings/admin/actions/media/cleanup.jsx
@@ -0,0 +1,59 @@
+/*
+	GoToSocial
+	Copyright (C) GoToSocial Authors admin@gotosocial.org
+	SPDX-License-Identifier: AGPL-3.0-or-later
+
+	This program is free software: you can redistribute it and/or modify
+	it under the terms of the GNU Affero General Public License as published by
+	the Free Software Foundation, either version 3 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU Affero General Public License for more details.
+
+	You should have received a copy of the GNU Affero General Public License
+	along with this program.  If not, see .
+*/
+
+"use strict";
+
+const React = require("react");
+
+const query = require("../../../lib/query");
+
+const { useTextInput } = require("../../../lib/form");
+const { TextInput } = require("../../../components/form/inputs");
+
+const MutationButton = require("../../../components/form/mutation-button");
+
+module.exports = function Cleanup({}) {
+	const daysField = useTextInput("days", { defaultValue: 30 });
+
+	const [mediaCleanup, mediaCleanupResult] = query.useMediaCleanupMutation();
+
+	function submitCleanup(e) {
+		e.preventDefault();
+		mediaCleanup(daysField.value);
+	}
+    
+	return (
+		
+	);
+};
diff --git a/web/source/settings/admin/actions/media/index.jsx b/web/source/settings/admin/actions/media/index.jsx
new file mode 100644
index 000000000..c5167506a
--- /dev/null
+++ b/web/source/settings/admin/actions/media/index.jsx
@@ -0,0 +1,32 @@
+/*
+	GoToSocial
+	Copyright (C) GoToSocial Authors admin@gotosocial.org
+	SPDX-License-Identifier: AGPL-3.0-or-later
+
+	This program is free software: you can redistribute it and/or modify
+	it under the terms of the GNU Affero General Public License as published by
+	the Free Software Foundation, either version 3 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU Affero General Public License for more details.
+
+	You should have received a copy of the GNU Affero General Public License
+	along with this program.  If not, see .
+*/
+
+"use strict";
+
+const React = require("react");
+const Cleanup = require("./cleanup");
+
+module.exports = function Media() {
+	return (
+		<>
+			Media Actions
+			
+		>
+	);
+};
-- 
cgit v1.2.3