diff client/src/stores/usermanagement.js @ 389:e7d5383bc358

feat: Primitive validation and error messages Added simple error messages to the usermanagement Added simple validation rules for fields: * password rules according issue70 * email used the regex from gocode
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 13 Aug 2018 16:21:26 +0200
parents 0a9aaf21f69f
children 40e7ab3df32c
line wrap: on
line diff
--- a/client/src/stores/usermanagement.js	Mon Aug 13 11:03:30 2018 +0200
+++ b/client/src/stores/usermanagement.js	Mon Aug 13 16:21:26 2018 +0200
@@ -2,11 +2,12 @@
 
 const newUser = () => {
   return {
-    user: "",
+    user: "N.N",
     email: "",
     country: null,
     role: null,
-    isNew: true
+    isNew: true,
+    password: ""
   };
 };
 
@@ -54,18 +55,35 @@
   actions: {
     saveCurrentUser({ commit }, data) {
       const { path, user } = data;
-      return new Promise((resolve, reject) => {
-        HTTP.put("/users/" + path, user, {
-          headers: { "X-Gemma-Auth": localStorage.getItem("token") }
-        })
-          .then(response => {
-            commit("setUserDetailsInvisible");
-            resolve(response);
+      if (user.isNew) {
+        return new Promise((resolve, reject) => {
+          HTTP.post("/users/", user, {
+            headers: { "X-Gemma-Auth": localStorage.getItem("token") }
           })
-          .catch(error => {
-            reject(error);
-          });
-      });
+            .then(response => {
+              commit("setUserDetailsInvisible");
+              commit("clearCurrentUser");
+              resolve(response);
+            })
+            .catch(error => {
+              reject(error);
+            });
+        });
+      } 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);
+            })
+            .catch(error => {
+              reject(error);
+            });
+        });
+      }
     },
     loadUsers({ commit }) {
       return new Promise((resolve, reject) => {