Sonata Admin - 为角色

时间:2017-05-17 09:14:35

标签: symfony acl sonata-admin sonata symfony-2.8

我对Symfony ACL的工作原理缺乏了解,尤其是使用Sonata ......

Sonata有一些权限,如:

  

LIST - 查看对象列表

     

查看 - 查看一个对象的详细信息

     

创建 - 创建一个新对象

     

编辑 - 更新现有对象

     

删除 - 删除现有对象

     

导出 - (对于原生Sonata导出链接)

     

全额授予LIST,VIEW,CREATE,EDIT,DELETE和EXPORT

我还为自己的自定义操作分配了自己创建的权限:

protected $accessMapping = array(
    'VERIFY' => 'EDIT',
    'UNVALIDATE' => 'EDIT',
    'CLOSE' => 'EDIT'
);

据我了解,我只需要授予用户EDIT权限即可VERIFYUNVALIDATECLOSE

管理员用户可以有3个角色:

security:
    role_hierarchy:
        ROLE_ADMIN: ROLE_SONATA_ADMIN
        ROLE_SUPER_ADMIN: ROLE_ADMIN

现在,根据角色,用户应该能够拥有某些权限。

E.g。 ROLE_ADMIN应该LIST, VIEW, EDIT, EXPORTROLE_SUPER_ADMIN应该被授予ALL

我该如何管理它?

P.S。我没有使用SonataUserBundle

1 个答案:

答案 0 :(得分:1)

我通常只使用SecurityVoters

http://www.branchbit.be/blog/using-custom-voters-in-sonata-admin

这为您提供了一种检查角色,权限和对象属性的简单方法,并确定特定用户是否允许在特定对象上执行特定操作。