Mercurial > gemma
changeset 406:40e7ab3df32c
feat: Basic CRUD for usermanagement etd
Basic features for adding, changing, deleting users established
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Wed, 15 Aug 2018 15:14:23 +0200 |
parents | 46a80016293c |
children | cffd144c99ea |
files | client/src/components/Userdetail.vue client/src/stores/usermanagement.js client/src/views/Users.vue |
diffstat | 3 files changed, 41 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/Userdetail.vue Wed Aug 15 12:20:16 2018 +0200 +++ b/client/src/components/Userdetail.vue Wed Aug 15 15:14:23 2018 +0200 @@ -138,6 +138,8 @@ this.currentUser = { ...this.user }; this.path = this.user.name; this.errors = clearedErrors(); + this.password = ""; + this.passwordre = ""; } }, computed: { @@ -154,7 +156,6 @@ this.currentUser.country && this.password === this.passwordre && (this.password === "" || !violatedPasswordRules(this.password)); - debugger; return valid; } }, @@ -212,7 +213,7 @@ const { status, data } = error.response; app.$toast.error({ title: "Backend Error", - message: `${status}: ${data}` + message: `${status}: ${data.message}` }); }); }) @@ -221,7 +222,7 @@ const { status, data } = error.response; app.$toast.error({ title: "Error while saving user", - message: `${status}: ${data}` + message: `${status}: ${data.message}` }); }); }
--- a/client/src/stores/usermanagement.js Wed Aug 15 12:20:16 2018 +0200 +++ b/client/src/stores/usermanagement.js Wed Aug 15 15:14:23 2018 +0200 @@ -53,11 +53,27 @@ } }, actions: { + deleteUser({ commit }, data) { + const { name } = data; + return new Promise((resolve, reject) => { + HTTP.delete("/users/" + name, { + headers: { "X-Gemma-Auth": localStorage.getItem("token") } + }) + .then(response => { + commit("clearCurrentUser"); + commit("setUserDetailsInvisible"); + resolve(response); + }) + .catch(error => { + reject(error); + }); + }); + }, saveCurrentUser({ commit }, data) { const { path, user } = data; if (user.isNew) { return new Promise((resolve, reject) => { - HTTP.post("/users/", user, { + HTTP.post("/users", user, { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => {
--- a/client/src/views/Users.vue Wed Aug 15 12:20:16 2018 +0200 +++ b/client/src/views/Users.vue Wed Aug 15 15:14:23 2018 +0200 @@ -120,7 +120,25 @@ }, methods: { deleteUser(name) { - console.log("delete: " + name); + this.$store + .dispatch("usermanagement/deleteUser", { name: name }) + .then(() => { + this.submitted = false; + this.$store.dispatch("usermanagement/loadUsers").catch(error => { + const { status, data } = error.response; + app.$toast.error({ + title: "Backend Error", + message: `${status}: ${data.message}` + }); + }); + }) + .catch(error => { + const { status, data } = error.response; + app.$toast.error({ + title: "Backend Error", + message: `${status}: ${data.message}` + }); + }); }, addUser() { this.$store.commit("usermanagement/clearCurrentUser"); @@ -139,7 +157,7 @@ const { status, data } = error.response; app.$toast.error({ title: "Backend Error", - message: `${status}: ${data}` + message: `${status}: ${data.message}` }); }); },