9

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

我们正在使用 Symfony2 和 FOSUserBundle。

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

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

4

1 回答 1

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 系统,但只是想我会更新我们正在做的事情。

于 2013-01-11T22:34:28.727 回答