我正在学习本教程
http://symfony.com/doc/current/cookbook/security/acl.html#creating-an-acl-and-adding-an-ace
$acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER);
这使得当前用户具有OWNER
权限,他可以编辑,删除evrything。
现在,我想为EDIT
个用户添加ROLE_EDIT
权限
MASTER
个用户的ROLE_ADMIN
权限
我可以在那里分配角色吗
答案 0 :(得分:1)
您可以按照以下方式执行此操作:
$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
然后将insertClassAce
用于基于角色的 $securityIdentity
。