我希望构建一个系统,该系统具有多个用户,每个用户可以被分配到0到多个项目或项目部分(对象)的角色。每个角色可以拥有1到多个权限。角色可以动态创建,因此可以将它们分配给用户。
然而,权限可以硬编码。
我知道我应该使用ACL,但是我不确定如何在Symfony2中添加动态角色。另外,我应该使用投票者吗?
我知道我应该使用ACL,但是我不确定如何在Symfony2中添加动态角色。另外,我应该使用投票者吗?
// creating the ACL
$aclProvider = $this->get('security.acl.provider');
$objectIdentity = ObjectIdentity::fromDomainObject($the_object_to_be_granted);
$acl = $aclProvider->createAcl($objectIdentity);
$securityIdentity = new RoleSecurityIdentity("CUSTOM_ROLE_YOU_HAVE");
// grant owner access
$acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER);// This is sample you can use any other masks you need
$aclProvider->updateAcl($acl);
您可以通过以下链接获得更多信息(Symfony ACL)