summaryrefslogtreecommitdiffstats
path: root/webapp/src/store
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-05 01:42:49 +0200
committerChristian Hofmaier2018-08-05 01:42:49 +0200
commitd236e4c57a7f71589764efccd0cb36337d551055 (patch)
tree6d47dc6deface87f1985ce7daf26692e25838b16 /webapp/src/store
parent[store/global] simplified settings loading (diff)
downloadbas-d236e4c57a7f71589764efccd0cb36337d551055.tar.gz
bas-d236e4c57a7f71589764efccd0cb36337d551055.tar.xz
bas-d236e4c57a7f71589764efccd0cb36337d551055.zip
[permissions] add permission management
Add Roles Table with Delete Roles and Create Roles possibilities Add Users Table with Grant Roles and Revoke Roles possibilities
Diffstat (limited to 'webapp/src/store')
-rw-r--r--webapp/src/store/index.js4
-rw-r--r--webapp/src/store/permissions.js81
2 files changed, 84 insertions, 1 deletions
diff --git a/webapp/src/store/index.js b/webapp/src/store/index.js
index afaa1b4..b351957 100644
--- a/webapp/src/store/index.js
+++ b/webapp/src/store/index.js
@@ -3,12 +3,14 @@ import Vuex from 'vuex'
import globalStore from '@/store/global'
import groups from '@/store/groups'
import backends from '@/store/backends'
+import permissions from '@/store/permissions'
Vue.use(Vuex)
globalStore.modules = {
groups,
- backends
+ backends,
+ permissions
}
export default new Vuex.Store(globalStore)
diff --git a/webapp/src/store/permissions.js b/webapp/src/store/permissions.js
new file mode 100644
index 0000000..a8d09ec
--- /dev/null
+++ b/webapp/src/store/permissions.js
@@ -0,0 +1,81 @@
+import axios from 'axios'
+
+export default {
+ namespaced: true,
+ state: {
+ roles: [],
+ users: [],
+ 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
+ },
+ 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/permissions/deleteRoles', { id: filteredArray }).then(response => {
+ context.dispatch('loadData')
+ context.commit('setSelectedRoles', [])
+ })
+ },
+ loadRoleData (context) {
+ axios.get('/api/permissions/getRoleList').then(response => {
+ context.commit('setRoles', response.data)
+ })
+ },
+ loadUserData (context) {
+ axios.get('/api/user/getUserList').then(response => {
+ context.commit('setUsers', response.data)
+ })
+ },
+ loadPermissionData (context) {
+ axios.get('/api/permissions/getPermissionList').then(response => {
+ context.commit('setPermissions', response.data)
+ })
+ },
+ loadData (context) {
+ context.dispatch('loadPermissionData')
+ context.dispatch('loadRoleData')
+ context.dispatch('loadUserData')
+ }
+ }
+}