access.ts 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. import * as _ from 'lodash'
  2. import { $roleUtils } from '~/services/rights/roleUtils'
  3. import {AbilitiesType, accessState, baseAccessState, baseOrganizationState, Historical, OrignalAccessState} from '~/types/interfaces'
  4. import { GENDER } from '~/types/enums'
  5. import { MyProfile } from '~/models/Access/MyProfile'
  6. import { repositoryHelper } from '~/services/store/repository'
  7. export const state = () => ({
  8. bearer: null,
  9. id: null,
  10. switchId: null,
  11. name: null,
  12. givenName: null,
  13. gender: null,
  14. avatarId: null,
  15. activityYear: null,
  16. historical: [],
  17. roles: [],
  18. abilities: [],
  19. isAdminAccess: false,
  20. isSuperAdminAccess: false,
  21. isAdmin: false,
  22. isAdministratifManager: false,
  23. isPedagogicManager: false,
  24. isFinancialManager: false,
  25. isCaMember: false,
  26. isStudent: false,
  27. isTeacher: false,
  28. isMember: false,
  29. isOther: false,
  30. isGuardian: false,
  31. isPayor: false,
  32. hasLateralMenu: false,
  33. hasConfigurationMenu: false,
  34. hasAccessesMenu: false,
  35. hasFamilyMenu: false,
  36. multiAccesses: [],
  37. familyAccesses: [],
  38. originalAccess: null
  39. })
  40. export const mutations = {
  41. setBearer (state: accessState, bearer: string) {
  42. state.bearer = bearer
  43. },
  44. setId (state: accessState, id: number) {
  45. state.id = id
  46. },
  47. setSwitchId (state: accessState, switchId: number) {
  48. state.switchId = switchId
  49. },
  50. setName (state: accessState, name: string) {
  51. state.name = name
  52. },
  53. setGivenName (state: accessState, givenName: string) {
  54. state.givenName = givenName
  55. },
  56. setGender (state: accessState, gender: GENDER) {
  57. state.gender = gender
  58. },
  59. setAvatarId (state: accessState, avatarId: number) {
  60. state.avatarId = avatarId
  61. },
  62. setActivityYear (state: accessState, activityYear: number) {
  63. state.activityYear = activityYear
  64. },
  65. setHistorical (state: accessState, historical: Historical) {
  66. state.historical = historical
  67. },
  68. setRoles (state: accessState, roles: Array<string>) {
  69. state.roles = roles
  70. },
  71. setAbilities (state: accessState, abilities: Array<AbilitiesType>) {
  72. state.abilities = abilities
  73. },
  74. setIsAdminAccess (state: accessState, isAdminAccess: boolean) {
  75. state.isAdminAccess = isAdminAccess
  76. },
  77. setIsSuperAdminAccess (state: accessState, isSuperAdminAccess: boolean) {
  78. state.isSuperAdminAccess = isSuperAdminAccess
  79. },
  80. setIsAdmin (state: accessState, isRole: boolean) {
  81. state.isAdmin = isRole
  82. },
  83. setIsAdministratifManager (state: accessState, isRole: boolean) {
  84. state.isAdministratifManager = isRole
  85. },
  86. setIsPedagogicManager (state:accessState, isRole:boolean) {
  87. state.isPedagogicManager = isRole
  88. },
  89. setIsFinancialManager (state: accessState, isRole: boolean) {
  90. state.isFinancialManager = isRole
  91. },
  92. setIsCaMember (state: accessState, isRole: boolean) {
  93. state.isCaMember = isRole
  94. },
  95. setIsStudent (state: accessState, isRole: boolean) {
  96. state.isStudent = isRole
  97. },
  98. setIsTeacher (state: accessState, isRole: boolean) {
  99. state.isTeacher = isRole
  100. },
  101. setIsMember (state: accessState, isRole: boolean) {
  102. state.isMember = isRole
  103. },
  104. setIsOther (state: accessState, isRole: boolean) {
  105. state.isOther = isRole
  106. },
  107. setIsGuardian(state:accessState, isGuardian:boolean){
  108. state.isGuardian = isGuardian
  109. },
  110. setIsPayor(state:accessState, isPayor:boolean){
  111. state.isPayor = isPayor
  112. },
  113. setHasLateralMenu(state:accessState, hasLateralMenu:boolean){
  114. state.hasLateralMenu = hasLateralMenu
  115. },
  116. setHasConfigurationMenu (state: accessState, hasConfigurationMenu: boolean) {
  117. state.hasConfigurationMenu = hasConfigurationMenu
  118. },
  119. setHasAccessesMenu (state: accessState, hasAccessesMenu: boolean) {
  120. state.hasAccessesMenu = hasAccessesMenu
  121. },
  122. setHasFamilyMenu (state: accessState, hasFamilyMenu: boolean) {
  123. state.hasFamilyMenu = hasFamilyMenu
  124. },
  125. addMultiAccess (state: accessState, access: baseOrganizationState) {
  126. state.multiAccesses.push(access)
  127. },
  128. addFamilyAccess (state: accessState, access: baseAccessState) {
  129. state.familyAccesses.push(access)
  130. },
  131. setOriginalAccess (state: accessState, access: OrignalAccessState) {
  132. state.originalAccess = access
  133. }
  134. }
  135. export const actions = {
  136. setProfile (context: any, profile: any) {
  137. const roles_to_array: Array<string> = Object.values(profile.roles)
  138. context.commit('setName', profile.name)
  139. context.commit('setGivenName', profile.givenName)
  140. context.commit('setGender', profile.gender)
  141. context.commit('setAvatarId', profile.avatarId)
  142. context.commit('setActivityYear', profile.activityYear)
  143. context.commit('setHistorical', profile.historical)
  144. context.commit('setIsAdminAccess', profile.isAdminAccess)
  145. context.commit('setIsAdmin', $roleUtils.isA('ADMIN', roles_to_array))
  146. context.commit('setIsAdministratifManager', $roleUtils.isA('ADMINISTRATIF_MANAGER', roles_to_array))
  147. context.commit('setIsPedagogicManager', $roleUtils.isA('PEDAGOGICS_MANAGER', roles_to_array))
  148. context.commit('setIsFinancialManager', $roleUtils.isA('FINANCIAL_MANAGER', roles_to_array))
  149. context.commit('setIsCaMember', $roleUtils.isA('CA', roles_to_array))
  150. context.commit('setIsStudent', $roleUtils.isA('STUDENT', roles_to_array))
  151. context.commit('setIsTeacher', $roleUtils.isA('TEACHER', roles_to_array))
  152. context.commit('setIsMember', $roleUtils.isA('MEMBER', roles_to_array))
  153. context.commit('setIsOther', $roleUtils.isA('OTHER', roles_to_array))
  154. context.commit('setIsGuardian', profile.isGuardian)
  155. context.commit('setIsPayor', profile.isPayor)
  156. context.commit('setRoles', $roleUtils.filterFunctionRoles(roles_to_array))
  157. context.commit('setIsAdminAccess', profile.isAdminAccess)
  158. // Time to set Multi Accesses
  159. context.dispatch('setMultiAccesses', profile.multiAccesses)
  160. // Time to set Family Accesses
  161. context.dispatch('setFamilyAccesses', profile.familyAccesses)
  162. // Time to add the original Access (switch User case)
  163. context.dispatch('setOriginalAccess', profile.originalAccess)
  164. // Time to set Oganization Profile
  165. context.dispatch('profile/organization/setProfile', profile.organization, { root: true })
  166. context.dispatch('createNewMyProfileVUexOrmInstance', profile)
  167. },
  168. setMultiAccesses (context: any, organizations: any) {
  169. _.each(organizations, (organization:baseOrganizationState) => {
  170. const o: baseOrganizationState = {
  171. id: organization.id,
  172. name: organization.name
  173. }
  174. context.commit('addMultiAccess', o)
  175. })
  176. },
  177. setFamilyAccesses (context: any, accesses: any) {
  178. _.each(accesses, (access: baseAccessState) => {
  179. const a:baseAccessState = {
  180. id: access.id,
  181. name: access.name,
  182. givenName: access.givenName,
  183. gender: access.gender,
  184. avatarId: access.avatarId
  185. }
  186. context.commit('addFamilyAccess', a)
  187. })
  188. },
  189. setOriginalAccess (context: any, access: any) {
  190. if (access) {
  191. const organization: baseOrganizationState = {
  192. id: access.organization.id,
  193. name: access.organization.name
  194. }
  195. const originalAccess:OrignalAccessState = {
  196. id: access.id,
  197. name: access.name,
  198. givenName: access.givenName,
  199. gender: access.gender,
  200. isSuperAdminAccess: access.isSuperAdminAccess,
  201. avatarId: access.avatarId,
  202. organization: organization
  203. }
  204. context.commit('setOriginalAccess', originalAccess)
  205. }
  206. },
  207. /**
  208. * Créer une nouvelle instance MyProfile dans Vuex ORM
  209. * @param _context
  210. * @param access
  211. */
  212. createNewMyProfileVUexOrmInstance (_context: any, access: any): void {
  213. repositoryHelper.persist(MyProfile, access)
  214. }
  215. }