1

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

我添加了带有 fosUserBundle 的 SonataUserBundle 用于登录。所以我可以添加用户、组和角色

在安全.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/api/monolog 即使他们没有 ROLE_IT

我怎样才能保护管理员以及如果用户可以访问它,我怎样才能只显示链接

4

2 回答 2

4

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

如果您没有当前状态下的所有角色,那么您应该激活内存安全提供程序并为您的帐户指定所有角色和 reauth。

于 2012-11-04T18:30:27.950 回答
0

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

资源:SonataAdminBundle 安全性

于 2012-11-27T10:13:06.060 回答