php - 根据 Symfony2 中的自定义投票器制作特定用户可访问的 Doctrine 实体列表

标签 php symfony doctrine-orm

情况:我的应用程序处理 Doctrine 实体,用户可以访问也可以不访问。特定用户是否可以出于特定目的访问特定实体由自定义选民对象决定(决定用户是否具有访问权限的过程相当复杂)。

问题:我需要向用户展示他有权访问的 Doctrine 实体列表。可能这个列表需要分页。由于决定用户是否有权访问实体的复杂性,为此创建单个 DQL/SQL 查询几乎是不可能的(或者至少是极其棘手的)。

问题:除了从数据库中获取所有实体、遍历它们并询问 security.context 实体是否具有访问权限(将授予访问权限的每个实体添加到一个数组,直到我构建了一个包含足够实体的数组来填充页面)?在向教义询问实体列表时,我能否以某种方式考虑选民?

最佳答案

这就是 ACL 的用途。

请阅读本书章节How to use Access Control Lists (ACLs) .

可以在 this blog post 中找到更多信息。以及文章底部的链接。

现在您已经设置了 ACL,您可以使用来自 this blog 的可能解决方案发布,this questionthis question .

您还可以查看 this gist 中的 ACLHelper .

关于php - 根据 Symfony2 中的自定义投票器制作特定用户可访问的 Doctrine 实体列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234529/

相关文章:

php - SQL 查找值比指定值集中的每个值最接近的行

php - Doctrine源代码: namespace or class?中 "PDOStatement extends\PDOStatement"的含义

php - 如何将现有 PDO 对象注入(inject)条令实体管理器

symfony - 如何为现有的 Symfony+Doctrine 应用程序生成初始/基础迁移?

php - symfony2 : how to access service from template

php - 使用php从数据库中获取数百万条记录

symfony - 如何获取KNP分页器的 Twig 中的分页方向?

php - 覆盖 symfony radio 部件

php - 基于列的唯一行

php - 如何在 codeigniter 的 session 中设置数组?