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