| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import { defineStore } from 'pinia'
- import {$roleUtils} from "~/services/rights/roleUtils";
- import {accessState, baseAccessState, baseOrganizationState, OrignalAccessState} from "~/types/interfaces";
- import {useProfileOrganizationStore} from "~/store/profile/organization";
- import {MyProfile} from "~/models/Access/MyProfile";
- import {useRepo} from "pinia-orm";
- export const useAccessProfileStore = defineStore('accessProfile', {
- state: (): accessState => {
- return {
- bearer: null,
- id: null,
- switchId: null,
- name: null,
- givenName: null,
- gender: null,
- avatarId: null,
- activityYear: null,
- historical: [],
- roles: [],
- abilities: [],
- isAdminAccess: false,
- isSuperAdminAccess: false,
- isAdmin: false,
- isAdministratifManager: false,
- isPedagogicManager: false,
- isFinancialManager: false,
- isCaMember: false,
- isStudent: false,
- isTeacher: false,
- isMember: false,
- isOther: false,
- isGuardian: false,
- isPayor: false,
- hasLateralMenu: false,
- hasConfigurationMenu: false,
- hasAccessesMenu: false,
- hasFamilyMenu: false,
- multiAccesses: [],
- familyAccesses: [],
- originalAccess: null
- }
- },
- actions: {
- setProfile(profile: any) {
- const roles: Array<string> = Object.values(profile.roles)
- this.name = profile.name
- this.givenName = profile.givenName
- this.gender = profile.gender
- this.avatarId = profile.avatarId
- this.activityYear = profile.activityYear
- this.historical = profile.historical
- this.isAdminAccess = profile.isAdminAccess
- this.isAdmin = $roleUtils.isA('ADMIN', roles)
- this.isAdministratifManager = $roleUtils.isA('ADMINISTRATIF_MANAGER', roles)
- this.isPedagogicManager = $roleUtils.isA('PEDAGOGICS_MANAGER', roles)
- this.isFinancialManager = $roleUtils.isA('FINANCIAL_MANAGER', roles)
- this.isCaMember = $roleUtils.isA('CA', roles)
- this.isStudent = $roleUtils.isA('STUDENT', roles)
- this.isTeacher = $roleUtils.isA('TEACHER', roles)
- this.isMember = $roleUtils.isA('MEMBER', roles)
- this.isOther = $roleUtils.isA('OTHER', roles)
- this.isGuardian = profile.isGuardian
- this.isPayor = profile.isPayor
- this.roles = $roleUtils.filterFunctionRoles(roles)
- // Time to add the original Access (switch User case)
- this.originalAccess = profile.originalAccess
- // Time to set Multi Accesses
- this.setMultiAccesses(profile.multiAccesses)
- // Time to set Family Accesses
- this.setFamilyAccesses(profile.familyAccesses)
- // Time to set Organization Profile
- const organizationProfileStore = useProfileOrganizationStore()
- organizationProfileStore.setProfile(profile.organization)
- useRepo(MyProfile).save(profile)
- },
- refreshProfile(profile: any) {
- this.name = profile.name
- this.givenName = profile.givenName
- this.gender = profile.gender
- this.avatarId = profile.avatarId
- this.activityYear = profile.activityYear
- const organizationProfileStore = useProfileOrganizationStore()
- organizationProfileStore.refreshProfile(profile.organization)
- },
- setMultiAccesses(organizations: any) {
- useEach(organizations, (organization: baseOrganizationState) => {
- const o: baseOrganizationState = {
- id: organization.id,
- name: organization.name
- }
- this.multiAccesses.push(o)
- })
- },
- setFamilyAccesses(accesses: any) {
- useEach(accesses, (access: baseAccessState) => {
- const a: baseAccessState = {
- id: access.id,
- name: access.name,
- givenName: access.givenName,
- gender: access.gender,
- avatarId: access.avatarId
- }
- this.familyAccesses.push(a)
- })
- },
- setOriginalAccess(access: any) {
- if (access) {
- const organization: baseOrganizationState = {
- id: access.organization.id,
- name: access.organization.name
- }
- const originalAccess: OrignalAccessState = {
- id: access.id,
- name: access.name,
- givenName: access.givenName,
- gender: access.gender,
- isSuperAdminAccess: access.isSuperAdminAccess,
- avatarId: access.avatarId,
- organization: organization
- }
- this.setOriginalAccess(originalAccess)
- }
- },
- }
- })
|