security.yaml 5.2 KB

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