access.ts 6.2 KB

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