2014-03-03 61 views

回答

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