非 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:
我在 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: