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}`
         });
       });
   },