2012-02-16 67 views
0

我一直试图在我正在开发的系统中实现ACL,并且 有几个问题。这主要是因为关于这个问题的文件总数不足。如果我们可以在这个复杂而基本的组件上获得更多信息,这将非常好。在任何情况下,我会 快乐,一旦我明白Symfony2 ACL问题

反正写的东西,我有问题有以下几种:1。 我有类场范围ACE来查看和编辑一个角色对象的字段 。当我使用以下方式检查视图时: isGranted('VIEW',object,'myField')

它总是错误的。课堂范围不应该适用于 课程的所有实例吗?我不确定这个范围是如何工作的。

  1. 当我删除一个组时,我想删除与该组相关的所有ACL条目。我已经试过这样: $ aclProvider-> deleteAcl(ObjectIdentity进行:: fromDomainObject($组))

它的工作原理。然后我尝试创建一个新组。该小组被创建, 但ACL设置失败,此错误:

注意:未定义抵消:0在项目/供应商/ symfony中/ src目录/ Symfony的/ 组件/安全性/ ACL/DBAL/MutableAclProvider.php线850

任何帮助都非常感谢!

回答

4

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

最近我一直在试验ACL和Symfony2。

从我发现这是检查类场范围的方式

$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

问候 雷托

+0

没有帮助你吗?请告诉我! – rryter 2012-02-22 15:36:40

+0

不,它没有工作 – 2014-10-14 11:20:47