Symfony2 ACL 问题
Posted
技术标签:
【中文标题】Symfony2 ACL 问题【英文标题】:Symfony2 ACL problems 【发布时间】:2012-02-16 18:32:17 【问题描述】:我一直在尝试在我正在开发的系统中实现 ACL,并且 有几个问题。这主要是因为完全缺乏 有关该主题的文档。如果我们能有那就太好了 有关这个复杂和基本组件的更多信息。无论如何,我会 一旦我理解了就很乐意写一些东西
无论如何,我遇到的问题如下: 1. 我拥有 Class-Field-Scope ACE 的角色来查看和编辑字段 的一个对象。当我使用这个签入视图时: isGranted('VIEW', object, 'myField')
它总是错误的。类范围不应该适用于所有实例 班级?我不太确定这个范围是如何工作的。
-
当我删除一个组时,我想删除所有相关的 ACL 条目
那个组。我试过这样:
$aclProvider->deleteAcl(ObjectIdentity::fromDomainObject($group))
它有效。然后我尝试创建一个新组。组被创建, 但 ACL 设置失败并出现此错误:
注意:未定义的偏移量:Project/vendor/symfony/src/Symfony/ 中的 0 组件/Security/Acl/Dbal/MutableAclProvider.php 第 850 行
非常感谢任何帮助!
【问题讨论】:
【参考方案1】:编辑:我已经更新了源代码,现在这是一个更好的解决方案。
我最近一直在尝试 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
问候 重做
【讨论】:
这对您没有帮助?请告诉我!以上是关于Symfony2 ACL 问题的主要内容,如果未能解决你的问题,请参考以下文章