Advertisement
Guest User

Symfony 2.3 + sonata + user ACL app/config/security.yml

a guest
Aug 8th, 2013
1,286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 4.10 KB | None | 0 0
  1. security:
  2.     providers:
  3.         fos_userbundle:
  4.             id: fos_user.user_manager
  5.  
  6.     acl:
  7.         connection: default
  8.                
  9.     encoders:
  10.         FOS\UserBundle\Model\UserInterface: sha512
  11.  
  12.     role_hierarchy:
  13. #        # for convenience, I decided to gather Sonata roles here
  14. #        ROLE_SONATA_FOO_READER:
  15. #            - ROLE_SONATA_ADMIN_DEMO_FOO_LIST
  16. #            - ROLE_SONATA_ADMIN_DEMO_FOO_VIEW
  17. #        ROLE_SONATA_FOO_EDITOR:
  18. #            - ROLE_SONATA_ADMIN_DEMO_FOO_CREATE
  19. #            - ROLE_SONATA_ADMIN_DEMO_FOO_EDIT
  20. #        ROLE_SONATA_FOO_ADMIN:
  21. #            - ROLE_SONATA_ADMIN_DEMO_FOO_DELETE
  22. #            - ROLE_SONATA_ADMIN_DEMO_FOO_EXPORT
  23.         # those are the roles I will use (less verbose)
  24.         ROLE_ADMIN:            [ROLE_STAFF, ROLE_SONATA_FOO_EDITOR, ROLE_SONATA_FOO_ADMIN]
  25.         ROLE_SUPER_ADMIN:      [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
  26.  
  27.     # set access_strategy to unanimous, else you may have unexpected behaviors
  28.     access_decision_manager:
  29.         strategy: unanimous
  30.  
  31.  
  32.  
  33.     firewalls:
  34.         # -> custom firewall for the admin area of the URL
  35.         admin:
  36.             pattern:     /admin(.*)
  37.             form_login:
  38.                 provider:      fos_userbundle
  39.                 login_path:    /admin/login
  40.                 use_forward:   false
  41.                 check_path:    /admin/login_check
  42.                 failure_path:  null
  43.             logout:
  44.                 path:          /admin/logout
  45.             anonymous:   true
  46.         # -> end custom configuration
  47.  
  48.         # defaut login area for standard users
  49.         main:
  50.             pattern:     .*
  51.             form_login:
  52.                 provider:      fos_userbundle
  53.                 login_path:    /login
  54.                 use_forward:   false
  55.                 check_path:    /login_check
  56.                 failure_path:  null
  57.             logout:      true
  58.             anonymous:   true
  59.  
  60.     access_control:
  61.        # URL of FOSUserBundle which need to be available to anonymous users
  62.         - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
  63.         - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }
  64.         - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  65.  
  66.         # AsseticBundle paths used when using the controller for assets
  67.         - { path: ^/js/, role: IS_AUTHENTICATED_ANONYMOUSLY }
  68.         - { path: ^/css/, role: IS_AUTHENTICATED_ANONYMOUSLY }
  69.        
  70.         # URL of FOSUserBundle which need to be available to anonymous users
  71.         - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  72.         - { path: ^/admin/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  73.         - { path: ^/admin/login-check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  74.         - { path: ^/user/new$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  75.         - { path: ^/user/check-confirmation-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  76.         - { path: ^/user/confirm/, role: IS_AUTHENTICATED_ANONYMOUSLY }
  77.         - { path: ^/user/confirmed$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  78.         - { path: ^/user/request-reset-password$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  79.         - { path: ^/user/send-resetting-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  80.         - { path: ^/user/check-resetting-email$, role: IS_AUTHENTICATED_ANONYMOUSLY }
  81.         - { path: ^/user/reset-password/, role: IS_AUTHENTICATED_ANONYMOUSLY }
  82.         - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
  83.         - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
  84.  
  85.         # Secured part of the site
  86.         # This config requires being logged for the whole site and having the admin role for the admin part.
  87.         # Change these rules to adapt them to your needs
  88.         - { path: ^/admin/, role: ROLE_ADMIN }
  89.         - { path: ^/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
  90.        
  91. parameters:
  92.    # ... other parameters
  93.     security.acl.permission.map.class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap
  94.     # optionally use a custom MaskBuilder
  95.     #sonata.admin.security.mask.builder.class: Sonata\AdminBundle\Security\Acl\Permission\MaskBuilder
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement