From aa6059b1c7cca0c4738d8324e815f304b9dfae70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Delattre?= Date: Tue, 7 Jan 2020 13:04:32 +0100 Subject: [PATCH] Allow the admins to delete users --- frontend/js/actions/admins.js | 10 ++++++++ frontend/js/components/admins/user.js | 1 + frontend/js/components/admins/userEdit.js | 28 +++++++++++++++++++---- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/frontend/js/actions/admins.js b/frontend/js/actions/admins.js index c9c713a..9beb65b 100644 --- a/frontend/js/actions/admins.js +++ b/frontend/js/actions/admins.js @@ -30,3 +30,13 @@ export function updateUser(data) { ] ) } + +export function deleteUser(username) { + return request( + "ADMIN_DELETE_USER", + configureAxios().delete("/admins/users/"+ username), + [ + () => getUsers(), + ] + ) +} diff --git a/frontend/js/components/admins/user.js b/frontend/js/components/admins/user.js index b6a9ad5..f21b142 100644 --- a/frontend/js/components/admins/user.js +++ b/frontend/js/components/admins/user.js @@ -37,6 +37,7 @@ export const User = ({ { const [modal, setModal] = useState(false); @@ -28,8 +30,9 @@ const UserEditConnect = ({ const [polochonId, setPolochonId] = useState(initPolochonId); const [polochonActivated, setPolochonActivated] = useState(initPolochonActivated); const [password, setPassword] = useState(""); + const [confirmDelete, setConfirmDelete] = useState(false); - const handleSubmit = function(e) { + const handleSubmit = (e) => { if (e) { e.preventDefault(); } updateUser({ userId: id, @@ -43,6 +46,16 @@ const UserEditConnect = ({ setModal(false); }; + const handleDeleteUser = (e) => { + if (e) { e.preventDefault(); } + if (confirmDelete) { + deleteUser(name) + setModal(false) + } else { + setConfirmDelete(true) + } + } + return ( +
+ +
+
); } UserEditConnect.propTypes = { id: PropTypes.string, + name: PropTypes.string, activated: PropTypes.bool, admin: PropTypes.bool, - data: PropTypes.object, updateUser: PropTypes.func, + deleteUser: PropTypes.func, polochonToken: PropTypes.string, polochonId: PropTypes.string, polochonActivated: PropTypes.bool, @@ -101,4 +121,4 @@ const mapStateToProps = (state) => ({ publicPolochons: state.polochon.get("public"), }); -export const UserEdit = connect(mapStateToProps, {updateUser})(UserEditConnect); +export const UserEdit = connect(mapStateToProps, {updateUser, deleteUser})(UserEditConnect); -- 2.47.1