security.yaml 5.4 KB

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