Update local user component

- Add, edit, delete user basic functionality complete
- Rename components and creating separate modal components
- Update button styles to match design and included icons
- Update grid layout to use container with max width set
- Add aria labels to table action buttons
- Refactor LocalUserManagementStore

Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Signed-off-by: Derick Montague <derick.montague@ibm.com>
Change-Id: Iab31ccabeb5a53ec03dc3ce3949fb20ded1ffbcf
diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js
index 41bbe0d..de79a2d 100644
--- a/src/store/modules/AccessControl/LocalUserMangementStore.js
+++ b/src/store/modules/AccessControl/LocalUserMangementStore.js
@@ -19,19 +19,45 @@
     getUsers({ commit }) {
       api
         .get("/redfish/v1/AccountService/Accounts")
-        .then(response => {
-          return response.data.Members.map(user => user["@odata.id"]);
-        })
-        .then(userIds => {
-          return api.all(userIds.map(user => api.get(user)));
-        })
+        .then(response => response.data.Members.map(user => user["@odata.id"]))
+        .then(userIds => api.all(userIds.map(user => api.get(user))))
         .then(users => {
           const userData = users.map(user => user.data);
           commit("setUsers", userData);
         })
-        .catch(error => {
-          console.log(error);
-        });
+        .catch(error => console.log(error));
+    },
+    createUser({ dispatch }, { username, password, privilege, status }) {
+      const data = {
+        UserName: username,
+        Password: password,
+        RoleId: privilege,
+        Enabled: status
+      };
+      api
+        .post("/redfish/v1/AccountService/Accounts", data)
+        .then(() => dispatch("getUsers"))
+        .catch(error => console.log(error));
+    },
+    updateUser(
+      { dispatch },
+      { originalUsername, username, password, privilege, status }
+    ) {
+      const data = {};
+      if (username) data.UserName = username;
+      if (password) data.Password = password;
+      if (privilege) data.RoleId = privilege;
+      if (status !== undefined) data.Enabled = status;
+      api
+        .patch(`/redfish/v1/AccountService/Accounts/${originalUsername}`, data)
+        .then(() => dispatch("getUsers"))
+        .catch(error => console.log(error));
+    },
+    deleteUser({ dispatch }, username) {
+      api
+        .delete(`/redfish/v1/AccountService/Accounts/${username}`)
+        .then(() => dispatch("getUsers"))
+        .catch(error => console.log(error));
     }
   }
 };