具有ACL的Symfony2组权限

时间:2012-08-16 09:01:48

标签: symfony acl fosuserbundle user-permissions

在我工作的地方,我们正在设计一个网络应用,其中用户可能属于多个群组,并且每个群组都可以访问高级未知的一组资源。此外,用户可以进入或离开组和组可以获取或失去对资源的访问权限,因此整个权限授予系统需要是动态的。

我们正在使用Symfony2和FOSUserBundle。

我们喜欢ACL系统的工作方式,但我们找不到将其应用于Group对象的方法。

有没有人用Symfony做过类似的事情?或者您对如何以其他方式实施它有任何建议吗?

1 个答案:

答案 0 :(得分:6)

根据该手册,您可以使用RoleSecurityIdentity而不仅仅是UserSecurityIdentity。因此,根据我的理解,你的角色就是你的团队。我现在正在处理类似的问题。如果已经使用它做了一点点,请尝试使用一些代码片段进行更新。

但现在看一下:http://symfony.com/doc/current/cookbook/security/acl_advanced.html

编辑:

我们走向另一个方向,而是通过每个控制器动作系统的权限进行更多操作。因此,每个控制器操作都使用注释分配了一个权限名称。

#SomeDomain/SomeBundle/Controller/SomeController.php
/**
 * @Permissions(perm="some.name.for.the.node")
 */
 public function indexAction(){ ... }

然后我们有一个权限包,其中包含一个服务,该服务在调用控制器函数时检查权限。我们的管理员将获得一个GUI,允许他们管理组将拥有的权限和个人用户。

查看我们正在做的事情:https://gist.github.com/1391850

我知道这不是你正在寻找的acl系统,但我想我会更新我们正在做的事情。