【发布时间】:2018-01-01 19:38:55
【问题描述】:
我使用 acl 编辑器成功设置了奏鸣曲管理包。我可以使用 acl 编辑器轻松设置对象以及角色用户的用户明智权限。但是当我尝试使用特定角色登录时,我看不到我允许特定角色的侧边栏菜单。
例如
我有 ROLE_MASTER_ADMIN、ROLE_SUPER_ADMIN、ROLE_VENDOR、ROLE_RETAILER 等角色。我现在使用 USERBUNDLE 设置了两个菜单,即用户和组。这显示了两个角色 ROLE_MASTER_ADMIN、ROLE_SUPER_ADMIN,具有完整的列表、编辑、删除、取消删除、操作员、主人和所有者权限。
然后我为 ROLE_VENDOR 设置权限,该权限可以访问 用户 列表、编辑、删除和取消删除。就像我为 ROLE_RETAILER 设置权限一样,它可以访问 groups 列表、编辑、删除和取消删除。
使用 ROLE_VENDOR、ROLE_RETAILER 用户登录后,我无法在侧边栏菜单中看到任何内容。
我需要帮助来实现这一点。提前致谢。
这是我在 config.yml 文件中设置的内容
sonata_admin:
dashboard:
groups:
sonata_user:
label: sonata_user
label_catalogue: SonataUserBundle
icon: '<i class="fa fa-users"></i>'
items:
-
admin: sonata.user.admin.user
route: admin_sonata_user_user_list
label: users
roles: ['ROLE_MASTER_ADMIN', 'ROLE_SUPER_ADMIN', 'ROLE_VENDOR']
-
admin: sonata.user.admin.group
route: admin_sonata_user_group_list
label: groups
roles: ['ROLE_MASTER_ADMIN', 'ROLE_SUPER_ADMIN', 'ROLE_RETAILER']
roles: ['ROLE_MASTER_ADMIN', 'ROLE_SUPER_ADMIN', 'ROLE_VENDOR', 'ROLE_RETAILER']
但它显示如下错误:
在渲染模板期间抛出异常(“警告:get_class() 期望参数 1 为对象,给定字符串”)。
更新 命令输出
=> php app/console sonata:admin:generate-object-acl
欢迎使用 AdminBundle 对象 ACL 生成器
此命令可帮助您为 AdminBundle 处理的对象生成 ACL 实体。
如果使用 step 选项,系统会询问您是否要为每个 Admin 生成对象 ACL 实体。 如果要设置对象所有者,则必须使用 AcmeDemoBundle:User 之类的快捷方式。
为 sonata.user.admin.user 生成 ACL
[TOTAL] 为 4 个对象生成了类 ACE(添加了 0 个,更新了 4 个)
为 sonata.user.admin.group 生成 ACL
[TOTAL] 为 0 个对象生成了类 ACE(添加了 0 个,更新了 0 个)
=> php app/console sonata:admin:setup-acl
启动 ACL AdminBundle 配置
为 sonata.user.admin.user 安装 ACL
更新角色:ROLE_SONATA_USER_ADMIN_USER_ROLE_RETAILER,权限:["LIST"]
更新角色:ROLE_SONATA_USER_ADMIN_USER_ROLE_VENDOR,权限:["LIST","EDIT","CREATE"]
更新角色:ROLE_SONATA_USER_ADMIN_USER_ROLE_MASTER_ADMIN,权限:["MASTER"]
为 sonata.user.admin.group 安装 ACL
更新角色:ROLE_SONATA_USER_ADMIN_GROUP_ROLE_RETAILER,权限:["LIST"]
更新角色:ROLE_SONATA_USER_ADMIN_GROUP_ROLE_VENDOR,权限:["LIST","EDIT","CREATE"]
更新角色:ROLE_SONATA_USER_ADMIN_GROUP_ROLE_MASTER_ADMIN,权限:["MASTER"]
【问题讨论】:
标签: symfony sonata-admin symfony-sonata sonata sonata-user-bundle