非 ROLE_SUPER_ADMIN 用户的空仪表板(symfony2,sonata acl)

Empty dashboard for not ROLE_SUPER_ADMIN user (symfony2, sonata acl)

我在 Sonata Admin Bundle 中使用 ACL。当我以 root(有 ROLE_SUPER_ADMIN)身份登录时,我可以创建新用户。我创建了一个(名为 qwer),然后以 qwer.

登录

问题:在我的情况下 qwer 用户的仪表板是空的,甚至具有

这样的角色

ROLE_SONATA_USER_ADMIN_USER_GUEST, ROLE_SONATA_USER_ADMIN_USER_STAFF, ROLE_SONATA_USER_ADMIN_USER_EDITOR

请告诉我——我应该怎么做才能了解问题出在哪里。

您是否完全遵循 the documentation for ACL?您应该添加 sonata_admin 配置和 security.yml 以确保万无一失。我的看起来像:

sonata_admin:
    # ...
    security:
        handler: sonata.admin.security.handler.acl
        # acl security information
        information:
            LIST:     [LIST]
            GUEST:    [VIEW, LIST]
            STAFF:    [LIST, CREATE]
            EDITOR:   [OPERATOR, EXPORT, EDIT]
            ADMIN:    [MASTER]
        admin_permissions: [CREATE, LIST, DELETE, UNDELETE, EXPORT, OPERATOR, MASTER]
        # permission related to the objects
        object_permissions: [VIEW, EDIT, DELETE, UNDELETE, OPERATOR, MASTER, OWNER]

还要确保您的 security.yml 具有所需的配置:

security:
    # ...
    providers:
        fos_userbundle:
            id: fos_user.user_manager
    acl:
        connection: default
    access_decision_manager:
        strategy: unanimous

并将 PermissionMap 添加到您的 app/config/parameters.yml 或捆绑参数:

# src/AppBundle/Resources/config/services.yml

parameters:
    # ...
    # Symfony 3 and above
    security.acl.permission.map:
      class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap

    # Symfony < 3
    security.acl.permission.map.class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap

然后您需要执行 3 个命令 运行:

初始化您的 ACL 设置(仅一次)

php app/console init:acl

重新加载对配置的更改(sonata_admin 配置文件中的每个更改)

php app/console sonata:admin:setup-acl

为已经存在的 entities/objects 生成(新的)ACL 规则。 (sonata_admin 配置文件中的每个更改)

php app/console sonata:admin:generate-object-acl

然后在设置配置后,注销并重新登录以应用角色。

要解决此问题,请检查您的应用程序包行中是否包含:

services:
    security.acl.permission.map:
        class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap

parameters: