- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我即将开始一个项目,该项目将需要几种具有不同“权力”的用户。
为了提供一些背景信息,我预计会有 1000 到 10000 个用户。
我至少有 3 个“层”:A、B、C
“A”可以是“咨询公司”,每个公司都有不同的客户“B”,每个公司都有几个项目“C”。
一位用户可能需要查看其公司“A”管理的所有项目的概览。
另一个只是公司“B”之一的公司。
另一个只是项目“A”。
某些用户可能会在每个级别上获得更细粒度的详细信息(也许用户在“B”级别具有细粒度级别,但在“A”级别上看不到任何内容)。
一些用户可能只有读取权限,其他人读取和修改,其他人读取、修改和创建。
最后,我可能会得到 100000 或 100 万个“对象”,我必须授予读/写/删除/修改权限。
我必须在相对简单的 Voters 系统或成熟的 ACL 之间进行选择。我注意到 ACL 并没有被很好地记录下来,尽管它看起来很强大。
我几乎放弃了选民,但后来我读到 this article这让我改变了主意。引自文章:
This is typically what you think of when you talk about ACL: the ability to say that “this user” has access to “edit” some “object”. In Symfony2, you can leverage a custom voter to use whatever complex business logic you have to determine this.
One other commonly-unknown property of isGranted is that there’s a second argument, which is any type of “object”
最佳答案
在您的情况下,您可能应该使用选民。 2013 年在华沙的 SymfonyCon 上有很好的讨论 - https://www.youtube.com/watch?v=e7HfW4TgnUY
1) Voter 将授予您所需的所有灵活性。您将选民注册为服务 ( link ),以便您可以传递给选民 EntityManager、Doctrine Registry、EntityRepository 或您想要的任何服务。
2)这可能不是性能明智的,但您应该首先以某种方式对其进行测量和分析(并在一些博客文章中分享,因为这可能非常有趣)
3)当然可以。与 Symfony 1.2 相关?你是说 Symfony 2.1 吗?您可以在 packagist 看到FOSUser 支持所有当前版本的 symfony :)
关于security - Symfony2 授权 : Voters Vs. ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27281817/
我正在使用 Voters 来限制对 REST API 中实体的访问。 第1步 考虑这个限制用户访问博客文章的选民: class BlogPostVoter extends Voter { pu
我正在 Codechef 上解决这个问题。但我提交的代码得到了错误的答案。问题链接::http://www.codechef.com/problems/VOTERS/ 问题简述::有3位官员负责收集该
我开始研究选民系统以保护我的 URL,但我有很多问题。 首先,我不知道我是否必须使用“角色”或“权限”。 “角色”是指 Role_User、Role_Manager 等。我所说的“权限”是指“Acce
我一直在研究一种遗传算法,其中有一个群体由具有颜色和偏好的个体组成。偏好和颜色来自少数有限状态,可能大约有 4 或 5 个。(例如:1|1、5|2、3|3 等) 每个人都为自己的偏好投“票”,这会帮助
我实现了一个自定义的 Symfony2 Voter,并将属性数组传递给 denyAccessUnlessGranted 的第一个参数,就像在我的 Controller 中一样: $attr = [
我即将开始一个项目,该项目将需要几种具有不同“权力”的用户。 为了提供一些背景信息,我预计会有 1000 到 10000 个用户。 我至少有 3 个“层”:A、B、C “A”可以是“咨询公司”,每个公
我正在尝试实现自定义选民。 从 Controller 我这样称呼它: $prj = $this->getDoctrine()->getRepository('AppBundle:Project')->
我已经成功创建了一个自定义 AccessDecisionVoter 类,并通过 XML 将其绑定(bind)到我的 Web 应用程序中。 现在我希望在每次页面加载时调用它,以确保允许用户访问该特定页面
我正在使用投票者来确定登录用户是否可以编辑给定对象。其中一个标准需要与另一个对象进行比较,但我不确定如何将其传递给选民。我不能使用构造函数参数,因为它不是预定义的值。 基本上我想做这样的事情: pr
我构建了一个选民,我需要在其中对用户调用 is_granted。 在我的选民中注入(inject) security.authorization_checker 服务时,出现以下错误 ServiceC
我是一名优秀的程序员,十分优秀!