[英]Sonata Admin - assign permissions to roles
我不了解Symfony ACL的工作原理,尤其是使用Sonata时。
奏鸣曲具有一些权限,例如:
LIST-查看对象列表
查看-查看一个对象的详细信息
创建-创建一个新对象
编辑-更新现有对象
删除-删除现有对象
出口-(用于本地奏鸣曲出口链接)
ALL-授予LIST,VIEW,CREATE,EDIT,DELETE和EXPORT
我还为自己的自定义操作分配了自己创建的权限:
protected $accessMapping = array(
'VERIFY' => 'EDIT',
'UNVALIDATE' => 'EDIT',
'CLOSE' => 'EDIT'
);
据我了解,我只需要授予用户EDIT
权限即可进行VERIFY
, UNVALIDATE
和CLOSE
。
管理员用户可以具有3个角色:
security:
role_hierarchy:
ROLE_ADMIN: ROLE_SONATA_ADMIN
ROLE_SUPER_ADMIN: ROLE_ADMIN
现在,根据角色,用户应该可以具有某些权限。
例如, ROLE_ADMIN
应该具有LIST, VIEW, EDIT, EXPORT
并且ROLE_SUPER_ADMIN
应该被授予ALL
。
我该如何管理?
PS我不使用SonataUserBundle
!
我通常要做的只是使用SecurityVoters
http://www.branchbit.be/blog/using-custom-voters-in-sonata-admin
这为您提供了一种简单的方法,可以检查角色,权限和对象属性,并确定特定用户是否允许对特定对象执行特定操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.