# HG changeset patch # User Fadi Abbud # Date 1632411187 -7200 # Node ID 29af073c824d028173c9b203c85d1601817afdf5 # Parent 279900b28b1be4c7ce6ae4bcb2991c40366faf82 Client: Implement reactivating of user * Add HTTP request to reactivate a deactivated user * This is done from the user's edit-dialog while typing an email for this user is necessary to complete this process. diff -r 279900b28b1b -r 29af073c824d client/src/components/usermanagement/Userdetail.vue --- a/client/src/components/usermanagement/Userdetail.vue Thu Sep 23 14:47:36 2021 +0200 +++ b/client/src/components/usermanagement/Userdetail.vue Thu Sep 23 17:33:07 2021 +0200 @@ -131,7 +131,9 @@ :disabled="submitted" class="shadow-sm btn btn-info submit-button" > - Save + {{ + currentUser.active ? $gettext("Save") : $gettext("Reactivate") + }} @@ -245,6 +247,9 @@ }, mounted() { this.currentUser = { ...this.user }; + if (!this.currentUser.active) { + this.currentUser.email = ""; + } this.path = this.user.name; }, watch: { @@ -253,6 +258,9 @@ }, user() { this.currentUser = { ...this.user }; + if (!this.currentUser.active) { + this.currentUser.email = ""; + } this.path = this.user.name; this.clearPassword(); this.clearErrors(); diff -r 279900b28b1b -r 29af073c824d client/src/store/usermanagement.js --- a/client/src/store/usermanagement.js Thu Sep 23 14:47:36 2021 +0200 +++ b/client/src/store/usermanagement.js Thu Sep 23 17:33:07 2021 +0200 @@ -32,7 +32,8 @@ role: null, isNew: true, password: "", - roleLabel: "" + roleLabel: "", + active: true }; }; @@ -130,17 +131,38 @@ }); } else { return new Promise((resolve, reject) => { - HTTP.put("/users/" + path, user, { - headers: { "X-Gemma-Auth": localStorage.getItem("token") } - }) - .then(response => { - commit("setUserDetailsInvisible"); - commit("clearCurrentUser"); - resolve(response); + // Reactivate User + if (!user.active) { + HTTP.patch( + "/users/" + path, + { active: true, email: user.email }, + { + headers: { + "X-Gemma-Auth": localStorage.getItem("token") + } + } + ) + .then(response => { + commit("setUserDetailsInvisible"); + commit("clearCurrentUser"); + resolve(response); + }) + .catch(error => { + reject(error); + }); + } else { + HTTP.put("/users/" + path, user, { + headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) - .catch(error => { - reject(error); - }); + .then(response => { + commit("setUserDetailsInvisible"); + commit("clearCurrentUser"); + resolve(response); + }) + .catch(error => { + reject(error); + }); + } }); } },