security.yaml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. imports:
  2. - { resource: security/* }
  3. security:
  4. role_hierarchy:
  5. ROLE_SUPER_ADMIN: [ ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH, ROLE_TIPS, ROLE_NETWORK ]
  6. BASE_ROLE_ADMINISTRATION_CORE: &BASE_ROLE_ADMINISTRATION_CORE
  7. - ROLE_MEMBER_CORE
  8. - ROLE_ORGANIZATION
  9. ROLE_ADMIN:
  10. - ROLE_CORE-CRUD
  11. - ROLE_GENERAL_CONFIG
  12. - ROLE_PEDAGOGICS_ADMINISTRATION
  13. - ROLE_PEDAGOGICS_SEIZURE
  14. - ROLE_EVENTS
  15. - ROLE_COURSES
  16. - ROLE_EXAMENS
  17. - ROLE_EDUCATIONALPROJECTS
  18. - ROLE_BILLINGS_ADMINISTRATION
  19. - ROLE_BILLINGS_SEIZURE
  20. - ROLE_NETWORK
  21. - ROLE_COTISATION
  22. - ROLE_ONLINEREGISTRATION_ADMINISTRATION
  23. - ROLE_STATISTIC
  24. - ROLE_ADMIN_CORE
  25. - ROLE_REWARD
  26. - ROLE_BASICOMPTA
  27. - ROLE_HELLOASSO
  28. ROLE_ADMIN_CORE: *BASE_ROLE_ADMINISTRATION_CORE
  29. ROLE_ADMINISTRATIF_MANAGER:
  30. - ROLE_CORE-CRUD
  31. - ROLE_GENERAL_CONFIG
  32. - ROLE_PEDAGOGICS_ADMINISTRATION
  33. - ROLE_PEDAGOGICS_SEIZURE
  34. - ROLE_EVENTS
  35. - ROLE_COURSES
  36. - ROLE_EXAMENS
  37. - ROLE_EDUCATIONALPROJECTS
  38. - ROLE_BILLINGS_ADMINISTRATION
  39. - ROLE_BILLINGS_SEIZURE
  40. - ROLE_NETWORK
  41. - ROLE_COTISATION
  42. - ROLE_STATISTIC
  43. - ROLE_ONLINEREGISTRATION_ADMINISTRATION
  44. - ROLE_ADMINISTRATIF_MANAGER_CORE
  45. - ROLE_BASICOMPTA
  46. - ROLE_HELLOASSO
  47. ROLE_ADMINISTRATIF_MANAGER_CORE: *BASE_ROLE_ADMINISTRATION_CORE
  48. ROLE_PEDAGOGICS_MANAGER:
  49. - ROLE_CORE-CRUD
  50. - ROLE_PEDAGOGICS_ADMINISTRATION
  51. - ROLE_PEDAGOGICS_SEIZURE
  52. - ROLE_EVENTS
  53. - ROLE_COURSES
  54. - ROLE_EXAMENS
  55. - ROLE_EDUCATIONALPROJECTS
  56. - ROLE_BILLINGS_ADMINISTRATION_VIEW
  57. - ROLE_BILLINGS_SEIZURE-VIEW
  58. - ROLE_STATISTIC
  59. - ROLE_ONLINEREGISTRATION_ADMINISTRATION
  60. - ROLE_PEDAGOGICS_MANAGER_CORE
  61. ROLE_PEDAGOGICS_MANAGER_CORE:
  62. - ROLE_MEMBER_CORE
  63. ROLE_FINANCIAL_MANAGER:
  64. - ROLE_CORE-CRUD
  65. - ROLE_EVENTS_VIEW
  66. - ROLE_COURSES_VIEW
  67. - ROLE_EXAMENS_VIEW
  68. - ROLE_EDUCATIONALPROJECTS_VIEW
  69. - ROLE_BILLINGS_ADMINISTRATION
  70. - ROLE_BILLINGS_SEIZURE
  71. - ROLE_STATISTIC
  72. - ROLE_FINANCIAL_MANAGER_CORE
  73. - ROLE_BASICOMPTA
  74. ROLE_FINANCIAL_MANAGER_CORE:
  75. - ROLE_MEMBER_CORE
  76. - ROLE_PAYER
  77. ROLE_CA:
  78. - ROLE_GENERAL_CONFIG
  79. - ROLE_CORE-CRUD
  80. - ROLE_COTISATION
  81. - ROLE_EVENTS
  82. - ROLE_COURSES
  83. - ROLE_EXAMENS
  84. - ROLE_EDUCATIONALPROJECTS
  85. - ROLE_BILLINGS_ADMINISTRATION_VIEW
  86. - ROLE_BILLINGS_SEIZURE_VIEW
  87. - ROLE_CA_CORE
  88. ROLE_CA_CORE:
  89. - ROLE_MEMBER_CORE
  90. ROLE_STUDENT:
  91. - ROLE_STUDENT_CORE
  92. ROLE_STUDENT_CORE:
  93. - ROLE_MEMBER_CORE
  94. - ROLE_WORK-BY-USER
  95. ROLE_TEACHER:
  96. - ROLE_TEACHER_CORE
  97. ROLE_TEACHER_CORE:
  98. - ROLE_MEMBER_CORE
  99. - ROLE_OWN-MY-STUDENT
  100. ROLE_MEMBER:
  101. - ROLE_MEMBER_CORE
  102. ROLE_MEMBER_CORE:
  103. - ROLE_CORE
  104. - ROLE_CORE_ACTION
  105. ROLE_OTHER:
  106. - ROLE_OTHER_CORE
  107. ROLE_OTHER_CORE:
  108. - ROLE_CORE
  109. - ROLE_RULERZ_ACTION
  110. ROLE_USER_FREEMIUM:
  111. - ROLE_CORE
  112. password_hashers:
  113. App\Entity\Person\Person:
  114. algorithm: bcrypt
  115. # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
  116. providers:
  117. # used to reload user from session & other features (e.g. switch_user)
  118. access_provider:
  119. entity:
  120. class: App\Entity\Access\Access
  121. person_provider:
  122. entity:
  123. class: App\Entity\Person\Person
  124. property: username
  125. firewalls:
  126. dev:
  127. pattern: ^/(_(profiler|wdt)|css|images|js)/
  128. security: false
  129. login:
  130. pattern: ^/login_check
  131. stateless: true
  132. json_login:
  133. provider: person_provider
  134. check_path: /login_check
  135. username_path: username
  136. password_path: password
  137. success_handler: lexik_jwt_authentication.handler.authentication_success
  138. failure_handler: lexik_jwt_authentication.handler.authentication_failure
  139. api:
  140. jwt: ~
  141. pattern: ^/api/
  142. stateless: true
  143. provider: access_provider
  144. switch_user:
  145. role: CAN_SWITCH_USER
  146. parameter: X-Switch-User
  147. main:
  148. # activate different ways to authenticate
  149. # https://symfony.com/doc/current/security.html#the-firewall
  150. # https://symfony.com/doc/current/security/impersonating_user.html
  151. # switch_user: true
  152. # Easy way to control access for large sections of your site
  153. # Note: Only the *first* access control that matches will be used
  154. access_control:
  155. - { path: ^/api/public, roles: PUBLIC_ACCESS }
  156. - { path: ^/api/internal, roles: INTERNAL_REQUEST }
  157. - { path: ^/api/internal, roles: ROLE_NO_ACCESS }
  158. - { path: ^/api/, roles: IS_HAVING_MODULE }