import {$roleUtils} from '~/services/rights/roleUtils' import {AbilitiesType, accessState, baseAccessState, baseOrganizationState} from "~/types/interfaces"; import * as _ from "lodash"; import {GENDER} from "~/types/enums"; export const state = () => ({ bearer: null, id: null, switchId: null, name: null, givenName: null, gender: null, avatarId: null, activityYear: null, roles: [], abilities: [], isAdmin: false, isAdministratifManager: false, isPedagogicManager: false, isFinancialManager: false, isCaMember: false, isStudent: false, isTeacher: false, isMember: false, isOther: false, hasLateralMenu: false, hasConfigurationMenu: false, hasAccessesMenu: false, hasFamilyMenu: false, multiAccesses: [], familyAccesses: [], originalAccess: null, }) export const mutations = { setBearer(state:accessState, bearer:string){ state.bearer = bearer }, setId(state:accessState, id:number){ state.id = id }, setSwitchId(state:accessState, switchId:number){ state.switchId = switchId }, setName(state:accessState, name:string){ state.name = name }, setGivenName(state:accessState, givenName:string){ state.givenName = givenName }, setGender(state:accessState, gender:GENDER){ state.gender = gender }, setAvatarId(state:accessState, avatarId:number){ state.avatarId = avatarId }, setActivityYear(state:accessState, activityYear:number){ state.activityYear = activityYear }, setRoles(state:accessState, roles:Array){ state.roles = roles }, setAbilities(state:accessState, abilities:Array){ state.abilities = abilities }, setIsAdminAccess(state:accessState, isAdminAccess:boolean){ state.isAdminAccess = isAdminAccess }, setIsAdmin(state:accessState, isRole:boolean){ state.isAdmin = isRole }, setIsAdministratifManager(state:accessState, isRole:boolean){ state.isAdministratifManager = isRole }, setIsPedagogicManager(state:accessState, isRole:boolean){ state.isPedagogicManager = isRole }, setIsFinancialManager(state:accessState, isRole:boolean){ state.isFinancialManager = isRole }, setIsCaMember(state:accessState, isRole:boolean){ state.isCaMember = isRole }, setIsStudent(state:accessState, isRole:boolean){ state.isStudent = isRole }, setIsTeacher(state:accessState, isRole:boolean){ state.isTeacher = isRole }, setIsMember(state:accessState, isRole:boolean){ state.isMember = isRole }, setIsOther(state:accessState, isRole:boolean){ state.isOther = isRole }, setHasLateralMenu(state:accessState, hasLateralMenu:boolean){ state.hasLateralMenu = hasLateralMenu }, setHasConfigurationMenu(state:accessState, hasConfigurationMenu:boolean){ state.hasConfigurationMenu = hasConfigurationMenu }, setHasAccessesMenu(state:accessState, hasAccessesMenu:boolean){ state.hasAccessesMenu = hasAccessesMenu }, setHasFamilyMenu(state:accessState, hasFamilyMenu:boolean){ state.hasFamilyMenu = hasFamilyMenu }, addMultiAccess(state:accessState, access:baseOrganizationState) { state.multiAccesses.push(access) }, addFamilyAccess(state:accessState, access:baseAccessState) { state.familyAccesses.push(access) }, setOriginalAccess(state:accessState, access:baseAccessState) { state.originalAccess = access } } export const actions = { setProfile(context:any, profile:any){ let roles_to_array:Array = Object.values(profile.roles) context.commit('setName', profile.name) context.commit('setGivenName', profile.givenName) context.commit('setGender', profile.gender) context.commit('setAvatarId', profile.avatarId) context.commit('setActivityYear', profile.activityYear) context.commit('setIsAdminAccess', profile.isAdminAccess) context.commit('setIsAdmin', $roleUtils.isA('ADMIN', roles_to_array)) context.commit('setIsAdministratifManager', $roleUtils.isA('ADMINISTRATIF_MANAGER', roles_to_array)) context.commit('setIsPedagogicManager', $roleUtils.isA('PEDAGOGICS_MANAGER', roles_to_array)) context.commit('setIsFinancialManager', $roleUtils.isA('FINANCIAL_MANAGER', roles_to_array)) context.commit('setIsCaMember', $roleUtils.isA('CA', roles_to_array)) context.commit('setIsStudent', $roleUtils.isA('STUDENT', roles_to_array)) context.commit('setIsTeacher', $roleUtils.isA('TEACHER', roles_to_array)) context.commit('setIsMember', $roleUtils.isA('MEMBER', roles_to_array)) context.commit('setIsOther', $roleUtils.isA('OTHER', roles_to_array)) context.commit('setRoles', $roleUtils.filterFunctionRoles(roles_to_array)) context.commit('setIsAdminAccess', profile.isAdminAccess) //Time to set Multi Accesses context.dispatch('setMultiAccesses', profile.multiAccesses) //Time to set Family Accesses context.dispatch('setFamilyAccesses', profile.familyAccesses) //Time to add the original Access (switch User case) context.dispatch('setOriginalAccess', profile.originalAccess) //Time to set Oganization Profile context.dispatch('profile/organization/setProfile', profile.organization, {root:true}) }, setMultiAccesses(context:any, accesses:any){ _.each(accesses, organization => { const o:baseOrganizationState = { id: organization.id, name: organization.name, } context.commit('addMultiAccess', o) }); }, setFamilyAccesses(context:any, accesses:any){ _.each(accesses, access => { const a:baseAccessState = { id: access.id, name: access.name, givenName: access.givenName, gender: access.gender, avatarId: access.avatarId, } context.commit('addFamilyAccess', a) }); }, setOriginalAccess(context:any, access: any) { if(access){ const originalAccess:baseAccessState = { id:access.id, name:access.name, givenName:access.givenName, gender:access.gender, avatarId:access.avatarId } context.commit('setOriginalAccess', originalAccess) } } }