From 463a57062a1e1f91743e53acb27e867fc4c7584c Mon Sep 17 00:00:00 2001 From: Yoshie Muranaka Date: Wed, 4 Dec 2019 09:09:36 -0800 Subject: 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 Signed-off-by: Derick Montague Change-Id: Iab31ccabeb5a53ec03dc3ce3949fb20ded1ffbcf --- src/main.js | 4 + .../AccessControl/LocalUserMangementStore.js | 44 +++++-- .../LocalUserManagement/LocalUserManagement.vue | 135 ++++++++++++++------- .../LocalUserMangementRoleTable.vue | 110 ----------------- .../LocalUserManagement/ModalSettings.vue | 9 ++ .../LocalUserManagement/ModalUser.vue | 75 ++++++++++++ .../LocalUserManagement/TableRoles.vue | 110 +++++++++++++++++ 7 files changed, 325 insertions(+), 162 deletions(-) delete mode 100644 src/views/AccessControl/LocalUserManagement/LocalUserMangementRoleTable.vue create mode 100644 src/views/AccessControl/LocalUserManagement/ModalSettings.vue create mode 100644 src/views/AccessControl/LocalUserManagement/ModalUser.vue create mode 100644 src/views/AccessControl/LocalUserManagement/TableRoles.vue diff --git a/src/main.js b/src/main.js index 6f4acc6d..695c0084 100644 --- a/src/main.js +++ b/src/main.js @@ -11,6 +11,8 @@ import { FormCheckboxPlugin, FormGroupPlugin, FormInputPlugin, + FormRadioPlugin, + FormSelectPlugin, LayoutPlugin, LinkPlugin, ListGroupPlugin, @@ -29,6 +31,8 @@ Vue.use(FormPlugin); Vue.use(FormCheckboxPlugin); Vue.use(FormGroupPlugin); Vue.use(FormInputPlugin); +Vue.use(FormRadioPlugin); +Vue.use(FormSelectPlugin); Vue.use(LayoutPlugin); Vue.use(LayoutPlugin); Vue.use(LinkPlugin); diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js index 41bbe0d8..de79a2d7 100644 --- a/src/store/modules/AccessControl/LocalUserMangementStore.js +++ b/src/store/modules/AccessControl/LocalUserMangementStore.js @@ -19,19 +19,45 @@ const LocalUserManagementStore = { 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)); } } }; diff --git a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue index cca068dc..c6716798 100644 --- a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue +++ b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue @@ -1,83 +1,93 @@ diff --git a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue new file mode 100644 index 00000000..3d985ac2 --- /dev/null +++ b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/views/AccessControl/LocalUserManagement/ModalUser.vue b/src/views/AccessControl/LocalUserManagement/ModalUser.vue new file mode 100644 index 00000000..70cd6141 --- /dev/null +++ b/src/views/AccessControl/LocalUserManagement/ModalUser.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/views/AccessControl/LocalUserManagement/TableRoles.vue b/src/views/AccessControl/LocalUserManagement/TableRoles.vue new file mode 100644 index 00000000..7aa1dc8e --- /dev/null +++ b/src/views/AccessControl/LocalUserManagement/TableRoles.vue @@ -0,0 +1,110 @@ + + + -- cgit v1.2.3