删除/更新安全标识ACL Symfony2

时间:2013-06-03 19:23:35

标签: security symfony doctrine-orm doctrine acl

我已阅读Symfony2安全/ ACL API但我找不到更新/删除和acl_security_identities的方法。

我使用此代码删除用户的aces。当我从用户删除所有a对象时,我也想删除表中的记录acl_security_identities

$idObjeto = ObjectIdentity::fromDomainObject($promotora);

$acl = $this->get('security.acl.provider')->findAcl($idObjeto);

# All aces of my object
$aces = $acl->getObjectAces();

# user to revoke access
$idUsuario = UserSecurityIdentity::fromAccount($usuario);

foreach($aces as $i => $ace) {
    if($idUsuario->equals($ace->getSecurityIdentity())) {

        $acl->deleteObjectAce($i);
    }
}

$this->get('security.acl.provider')->updateAcl($acl);

这是可能的吗?我无法在API中找到访问该表的示例或文档。

此外我还有这个问题https://github.com/symfony/symfony/issues/5787,因为我使用邮件作为用户名。是否有替代ACL?

1 个答案:

答案 0 :(得分:2)

我在您的GitHub问题中发表了评论,并提出了一个关于删除用户的开始。

我建议您检查我的帖子并为修改其用户名做类似的事情。 https://groups.google.com/forum/#!topic/symfony2/mGTXlTWiMs8/discussion