SonataAdminBundle安全角色

时间:2012-06-06 09:03:54

标签: security symfony symfony-sonata

我正在尝试在SonataAdminBundle中保护一些管理员

我使用fosUserBundle添加SonataUserBundle进行登录。 所以我可以添加用户,组和角色

在security.yml

role_hierarchy:
    ROLE_ADMIN: ROLE_ADMIN
    ROLE_IT: ROLE_IT
    ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_IT]


access_control:
    - { path: ^/sonata/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/sonata/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/sonata/login-check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/sonata, role: [ROLE_ADMIN] }
    - { path: ^/sonata/api/monolog, role: [ROLE_IT] }

我必须连接才能访问Sonata

但是每个用户都可以访问路由/ sonata / api / monolog,即使他们没有ROLE_IT

如何安全管理员 如果用户可以访问链接,我怎么才能显示链接

2 个答案:

答案 0 :(得分:4)

管理员用户必须拥有活动安全令牌中的所有角色。

如果您没有处于当前状态的所有角色,则应激活内存安全提供程序并指定包含所有角色和reauth的帐户。

答案 1 :(得分:0)

使用acl作为安全处理程序。

资源:SonataAdminBundle Security