Php 如何使用symfony ACL分配角色权限

Php 如何使用symfony ACL分配角色权限,php,symfony,acl,Php,Symfony,Acl,我遵循这个教程 $acl->insertObjectAce($securityIdentity,MaskBuilder::MASK\u OWNER) 这使得当前的用户拥有OWNER权限,可以编辑、删除所有内容 现在,我还想为ROLE\u EDIT用户添加EDIT权限 和MASTER对ROLE\u ADMIN用户的权限 我可以在那里分配角色吗您可以按以下方式进行: $aclProvider = $this->getContainer()->get('security.acl.

我遵循这个教程

$acl->insertObjectAce($securityIdentity,MaskBuilder::MASK\u OWNER)

这使得当前的用户拥有
OWNER
权限,可以编辑、删除所有内容

现在,我还想为
ROLE\u EDIT
用户添加
EDIT
权限 和
MASTER
ROLE\u ADMIN
用户的权限


我可以在那里分配角色吗

您可以按以下方式进行:

    $aclProvider = $this->getContainer()->get('security.acl.provider');

    // Use class for object identity as below
    $oid = new ObjectIdentity('acme_post', 'Your\\AcmeBundle\\Entity\\Post');

    $acl = $aclProvider->createAcl($oid);

    $securityIdentity = new RoleSecurityIdentity("ROLE_ADMIN");
    // grant owner access to users with above role
    $acl->insertClassAce($securityIdentity, MaskBuilder::MASK_OWNER);
这里的神奇之处在于,您不需要使用实体对象启动
ObjectIdentity
,然后使用
insertObjectAce
,而需要使用实体类启动
ObjectIdentity
,然后对基于角色的
$securityIdentity
使用
insertClassAce