access.ts 6.0 KB

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