2

我正在使用 SonataUserBundle,并且正在尝试向某些用户授予 LIST/EDIT 访问权限。

配置.yml

#...
sonata_admin:
    security:
        handler: sonata.admin.security.handler.role
#...

我可以看到ROLE_SONATA_USER_ADMIN_USER_*管理员中列出的角色。

安全.yml

security:
    access_decision_manager:
        strategy: unanimous
    #...
    role_hierarchy:
        #...
        ROLE_EDIT_USER:
            - ROLE_SONATA_USER_ADMIN_USER_LIST
            - ROLE_SONATA_USER_ADMIN_USER_EDIT
        #...

ROLE_EDIT_USER不授予用户管理员访问权限。

我没有奏鸣曲的防火墙规则。
如果我使用处理程序sonata.admin.security.handler.noop,我将获得访问权限,这证明(我认为)访问实际上被奏鸣曲拒绝了。

什么可以拒绝我访问ROLE_EDIT_USER

4

1 回答 1

2

好的,我没有看到我也在ROLE_SONATA_ADMIN_USER_*管理员中列出,我不明白为什么。

所以我不得不设置

    ROLE_EDIT_USER:
        - ROLE_SONATA_ADMIN_USER_LIST
        - ROLE_SONATA_ADMIN_USER_EDIT

反而

有时 Symfony 在我看来对于简单的事情来说是如此复杂......

例如,我用 Django 配置相同的东西的时间减少了 10 倍。
即使这与奏鸣曲比 Symfony 更相关

于 2013-07-05T08:02:42.560 回答