summaryrefslogtreecommitdiffstats
path: root/webapp/src/store/permissions.js
blob: 7ec454ca8b5dfea389359ecc3be9a1c87613206e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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')
    }
  }
}