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.
ref="basicForm"
@submit.prevent
>
<v-row>
<v-col>
<v-autocomplete
label="Permission groups"
:items="userGroups"
></v-autocomplete>
</v-col>
</v-row>
<v-row>
<v-col cols="12" md="6">
<v-text-field
......@@ -192,8 +200,11 @@ import { Status } from '@/models/Status'
import { Manufacturer } from '@/models/Manufacturer'
import { createPlatformUrn } from '@/modelUtils/urnBuilders'
import { mapGetters, mapState } from 'vuex'
@Component
@Component({
computed:mapGetters('permissions',['userGroups'])
})
export default class PlatformBasicDataForm extends mixins(Rules) {
private states: Status[] = []
private manufacturers: Manufacturer[] = []
......
import { Api } from '@/services/Api'
import { Commit } from 'vuex'
import { Commit, GetterTree} from 'vuex'
import { UserInfo } from '@/models/UserInfo'
import { PermissionGroup } from '@/models/PermissionGroup'
......@@ -13,7 +13,37 @@ const state = (): permissionsState => ({
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
const actions: {
[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