security.yaml 5.2 KB

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