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