import axios from 'axios' export default { namespaced: true, state: { roles: [], users: [], groups: [], permissions: [], selectedRoles: [], selectedUsers: [], roleId: '', dialog: false, grantRevoke: false, grant: false, edit: false }, mutations: { setDialog (state, value) { state.dialog = value }, setRoles (state, value) { state.roles = value }, setUsers (state, value) { state.users = value }, setGroups (state, value) { state.groups = value }, setPermissions (state, value) { state.permissions = value }, setSelectedRoles (state, value) { state.selectedRoles = value }, setSelectedUsers (state, value) { state.selectedUsers = value }, editRole (state, value) { state.roleId = value state.edit = true }, setEdit (state, value) { state.edit = value }, grantRevoke (state, value) { state.grantRevoke = value.show state.grant = value.grant }, setGrantRevoke (state, value) { state.grantRevoke = value } }, actions: { deleteSelectedRoles (context) { // Filter selected array to get a list of ids. const filteredArray = context.state.selectedRoles.map(x => x.id) axios.post('/api/roles?delete', { ids: filteredArray }).then(response => { context.dispatch('loadData') context.commit('setSelectedRoles', []) }) }, loadRoleData (context) { axios.get('/api/roles').then(response => { context.commit('setRoles', response.data) }) }, loadUserData (context) { axios.get('/api/users').then(response => { context.commit('setUsers', response.data) }) }, loadGroupData (context) { axios.get('/api/groups').then(response => { context.commit('setGroups', response.data) }) }, loadPermissionData (context) { axios.get('/api/permissions').then(response => { context.commit('setPermissions', response.data) }) }, loadData (context) { context.dispatch('loadRoleData') context.dispatch('loadUserData') context.dispatch('loadGroupData') context.dispatch('loadPermissionData') } } }