summaryrefslogblamecommitdiffstats
path: root/webapp/src/store/permissions.js
blob: 7ec454ca8b5dfea389359ecc3be9a1c87613206e (plain) (tree)
1
2
3
4
5
6
7
8
9






                         

                    

















                              





                                   
























                                                                      
                                                                                




                                              
                                                



                                                 
                                                


                                                 









                                                       
                        

                                      

                                            


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