| import api from '../../api'; |
| |
| const LocalUserManagementStore = { |
| namespaced: true, |
| state: { |
| allUsers: [] |
| }, |
| getters: { |
| allUsers(state) { |
| return state.allUsers; |
| } |
| }, |
| mutations: { |
| setUsers(state, allUsers) { |
| state.allUsers = allUsers; |
| } |
| }, |
| actions: { |
| getUsers({ commit }) { |
| api |
| .get('/redfish/v1/AccountService/Accounts') |
| .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)); |
| }, |
| 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)); |
| } |
| } |
| }; |
| |
| export default LocalUserManagementStore; |