Skip to content
Snippets Groups Projects
Commit 63db3f2e authored by Tobias Kuhnert's avatar Tobias Kuhnert
Browse files

progress on permission groups

parent ff4a8c83
No related branches found
No related tags found
2 merge requests!296Merge develop for staging release,!225Draft: Resolve "[Refactoring] Improve vuex store usage"
...@@ -36,6 +36,14 @@ permissions and limitations under the Licence. ...@@ -36,6 +36,14 @@ permissions and limitations under the Licence.
ref="basicForm" ref="basicForm"
@submit.prevent @submit.prevent
> >
<v-row>
<v-col>
<v-autocomplete
label="Permission groups"
:items="userGroups"
></v-autocomplete>
</v-col>
</v-row>
<v-row> <v-row>
<v-col cols="12" md="6"> <v-col cols="12" md="6">
<v-text-field <v-text-field
...@@ -192,8 +200,11 @@ import { Status } from '@/models/Status' ...@@ -192,8 +200,11 @@ import { Status } from '@/models/Status'
import { Manufacturer } from '@/models/Manufacturer' import { Manufacturer } from '@/models/Manufacturer'
import { createPlatformUrn } from '@/modelUtils/urnBuilders' import { createPlatformUrn } from '@/modelUtils/urnBuilders'
import { mapGetters, mapState } from 'vuex'
@Component @Component({
computed:mapGetters('permissions',['userGroups'])
})
export default class PlatformBasicDataForm extends mixins(Rules) { export default class PlatformBasicDataForm extends mixins(Rules) {
private states: Status[] = [] private states: Status[] = []
private manufacturers: Manufacturer[] = [] private manufacturers: Manufacturer[] = []
......
import { Api } from '@/services/Api' import { Api } from '@/services/Api'
import { Commit } from 'vuex' import { Commit, GetterTree} from 'vuex'
import { UserInfo } from '@/models/UserInfo' import { UserInfo } from '@/models/UserInfo'
import { PermissionGroup } from '@/models/PermissionGroup' import { PermissionGroup } from '@/models/PermissionGroup'
...@@ -13,7 +13,37 @@ const state = (): permissionsState => ({ ...@@ -13,7 +13,37 @@ const state = (): permissionsState => ({
permissionGroups: [] permissionGroups: []
}) })
const getters = {} const getters = {
memberedPermissionGroups:(state:permissionsState)=>{
if(state.userInfo!==null){
const memberMappedIds = state.userInfo.member.map(groupId=>groupId.split('/').pop())
// return state.permissionGroups.filter(group => state.userInfo!.isMemberOf(group))
return state.permissionGroups.filter((group)=>{
return memberMappedIds.find(groupId => groupId===group.id)
})
}
return []
},
administradedPermissionGroups:(state:permissionsState)=>{
if(state.userInfo !== null){
const administratedMappedIds = state.userInfo.admin.map(groupId=>groupId.split('/').pop())
return state.permissionGroups.filter((group)=>{
return administratedMappedIds.find(groupId => groupId===group.id)
})
}
return []
// return state.permissionGroups.filter(group => state.userInfo?.isAdminOf(group))
},
userGroups:(state:permissionsState,getters:any)=>{
if(state.userInfo){
return [...new Set(
[...getters.memberedPermissionGroups, ...getters.administradedPermissionGroups]
)
]
}
return []
}
}
// @ts-ignore // @ts-ignore
const actions: { const actions: {
[key: string]: any; [key: string]: any;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment