您好我有一个群组系统,我想为它添加一些安全性。
用户可以属于多个组,并且id喜欢知道授权人们只有在群组中才能看到群组的最佳方式。如果他们不想将他们重定向到另一个页面,那么根据该组别不同。
现在我创建了一个服务,但我必须在每个控制器中使用它...
我听说过很多事情,但不确定它们是否适合我的情况。
感谢您的帮助
答案 0 :(得分:1)
根据方法/复杂性,有几种不同的方法可以做到这一点。以下是一些:
1)使用Symfony ACLS。将用户添加到特定组时,可以使用symfony ACL系统授予他们对该组的查看权限,然后针对该组检查isGranted()以查看他们是否具有查看权限。
2)创建一个自定义选民 http://symfony.com/doc/current/cookbook/security/voters.html#creating-a-custom-voter
3)如果组的数量有限,您甚至可以使用Doctrine查询过滤器自动为所有查询添加where子句,其中group_id位于该用户的允许组列表中。您可以绕过所有管理员用户。 http://doctrine-orm.readthedocs.org/en/latest/reference/filters.html