Symfony2 ACL问题

时间:2012-02-16 18:32:18

标签: symfony acl

我一直在尝试在我正在开发的系统中实现ACL 有几个问题。这主要是因为完全缺乏 有关该主题的文件。如果我们能做到的话真的很棒 关于这个复杂和基本组件的更多信息。无论如何,我会 我很乐意在我理解后写点东西

无论如何,我遇到的问题如下: 1.我在Class-Field-Scope ACE中有一个角色来查看和编辑一个字段 一个对象。当我使用以下方式检查视图时: isGranted('VIEW',object,'myField')

总是假的。不应该将类范围应用于所有实例 类?我不确定这个范围是如何运作的。

  1. 删除组时,我想删除与之相关的所有ACL条目 那个小组。我试过这样的: $ aclProvider-> deleteAcl(ObjectIdentity进行:: fromDomainObject($组))
  2. 有效。然后我尝试创建一个新组。该组被创建, 但ACL设置失败并显示以下错误:

    注意:Project / vendor / symfony / src / Symfony /中未定义的偏移量:0 组件/安全/ Acl / Dbal / MutableAclProvider.php第850行

    非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

编辑:我已经更新了源代码,现在它是一个更好的解决方案。

我最近一直在尝试使用ACL和Symfony2。

从我发现的这是检查class-field-scope的方式

$post = $postRepo->findOneById(1);

$securityContext = $this->get('security.context');
$oid = new ObjectIdentity('class', 'Liip\\TestBundle\\Entity\\Post');

$object = new FieldVote($oid, 'id');
if (true === $securityContext->isGranted('EDIT', $object)){
   echo "Access to 'id' field granted";
}else{
   echo "Access denied";
}

 $object = new FieldVote($oid, 'post');
 if (true === $securityContext->isGranted('VIEW', $object))
 {
    echo "Access to 'post' field granted";
 }else{
    echo "Access denied";
 }

关于删除ACL到目前为止我还不知道,我需要稍后调查一下这个问题。我希望这有帮助!

有关该主题的更多信息。可能不适合你,但对其他用户来说可能会有所帮助:Smyfony2 and ACLs

此致 雷托