symfony - Sonata 用户 - 角色安全 访问被拒绝

标签 symfony sonata-admin

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

config.yml

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

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

security.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 我将获得访问权限,这证明(我认为)该访问实际上被 sonata 拒绝了。

什么可以拒绝我访问 ROLE_EDIT_USER

最佳答案

好吧,我没有看到管理中还列出了 ROLE_SONATA_ADMIN_USER_*,我不明白为什么。

所以我必须设置

    ROLE_EDIT_USER:
        - ROLE_SONATA_ADMIN_USER_LIST
        - ROLE_SONATA_ADMIN_USER_EDIT

相反

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

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

关于symfony - Sonata 用户 - 角色安全 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17483342/

相关文章:

symfony - SonataAdminBundle model_type 值以过滤器形式过滤

forms - 如何在奏鸣曲管理包中将 NULL 作为数据网格关系中的选项?

symfony - 如何动态为用户添加角色?

php - JMSTranslationBundle 未提取 'placeholder' 元素

php - Symfony2 ESI : Responses marked as public, 即使子请求包含私有(private)响应

symfony - Sonata Admin - 按计算值排序的列表

security - Symfony2 SonataAdminBundle 密码字段加密

php - Symfony fatal error __construct() 必须是 MyBundle\FileUploader 的实例

php - 如何在嵌套管理中执行内联编辑?

validation - 在 Sonata Admin 中声明唯一验证