Add dynamic AccountService Roles
Get roles on local user management privilege dropdown
from /redfish/v1/AccountService/Roles instead of hard-coded
values.
Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: I00409b17fc1a2a49b880883749c0241e0aae283e
diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js
index c729d15..113b420 100644
--- a/src/store/modules/AccessControl/LocalUserMangementStore.js
+++ b/src/store/modules/AccessControl/LocalUserMangementStore.js
@@ -20,6 +20,7 @@
namespaced: true,
state: {
allUsers: [],
+ accountRoles: [],
accountLockoutDuration: null,
accountLockoutThreshold: null,
accountMinPasswordLength: null,
@@ -29,6 +30,9 @@
allUsers(state) {
return state.allUsers;
},
+ accountRoles(state) {
+ return state.accountRoles;
+ },
accountSettings(state) {
return {
lockoutDuration: state.accountLockoutDuration,
@@ -46,6 +50,9 @@
setUsers(state, allUsers) {
state.allUsers = allUsers;
},
+ setAccountRoles(state, accountRoles) {
+ state.accountRoles = accountRoles;
+ },
setLockoutDuration(state, lockoutDuration) {
state.accountLockoutDuration = lockoutDuration;
},
@@ -88,6 +95,17 @@
throw new Error('Error loading account settings.');
});
},
+ getAccountRoles({ commit }) {
+ api
+ .get('/redfish/v1/AccountService/Roles')
+ .then(({ data: { Members = [] } = {} }) => {
+ const roles = Members.map(role => {
+ return role['@odata.id'].split('/').pop();
+ });
+ commit('setAccountRoles', roles);
+ })
+ .catch(error => console.log(error));
+ },
async createUser({ dispatch }, { username, password, privilege, status }) {
const data = {
UserName: username,
diff --git a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue
index c08b39b..b9df58f 100644
--- a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue
+++ b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue
@@ -200,6 +200,7 @@
created() {
this.$store.dispatch('localUsers/getUsers');
this.$store.dispatch('localUsers/getAccountSettings');
+ this.$store.dispatch('localUsers/getAccountRoles');
},
methods: {
initModalUser(user) {
diff --git a/src/views/AccessControl/LocalUserManagement/ModalUser.vue b/src/views/AccessControl/LocalUserManagement/ModalUser.vue
index a9c0f6c..f4a66e7 100644
--- a/src/views/AccessControl/LocalUserManagement/ModalUser.vue
+++ b/src/views/AccessControl/LocalUserManagement/ModalUser.vue
@@ -225,7 +225,6 @@
},
data() {
return {
- privilegeTypes: ['Administrator', 'Operator', 'ReadOnly', 'NoAccess'],
originalUsername: '',
form: {
status: true,
@@ -246,6 +245,9 @@
},
manualUnlockPolicy() {
return !this.accountSettings.accountLockoutDuration;
+ },
+ privilegeTypes() {
+ return this.$store.getters['localUsers/accountRoles'];
}
},
watch: {