如何过滤用户可以在 Sonata Admin 中看到的实体实例
Posted
技术标签:
【中文标题】如何过滤用户可以在 Sonata Admin 中看到的实体实例【英文标题】:How to filter the instances of an entity that a user can see in Sonata Admin 【发布时间】:2015-01-11 05:27:57 【问题描述】:我有一个实体“Vehicles”,它与另一个实体“Department”有 ManyToOne 连接。我可以为用户设置“部门”属性。我希望这个用户(具有 ROLE_DEPARTMENT_MANAGER 角色)能够仅查看(列出、创建、删除等)他自己部门的车辆。
使用角色时,我可以限制对特定操作的访问。我认为我应该使用 ACL,但我不确定如何使用以及 Sonata Admin 的行为方式。
我在这里发现了类似的问题,但没有人回答:Sonata Admin Bundle filter show entity from role user
您能告诉我如何在 Sonata Admin Bundle 中执行此操作吗?
【问题讨论】:
【参考方案1】:我刚刚写了关于这个确切主题的文章(我知道这个问题很老,但它可能有助于将来参考): http://www.theodo.fr/blog/2016/09/sonata-for-symfony-hide-your-filters/
【讨论】:
欢迎来到 SO。请提供此特定问题的答案。不只是发布链接【参考方案2】:您可以自定义用于在您的 VehicleAdmin 类中生成列表的查询:
http://sonata-project.org/bundles/admin/master/doc/reference/action_list.html#customizing-the-query-used-to-generate-the-list
【讨论】:
以上是关于如何过滤用户可以在 Sonata Admin 中看到的实体实例的主要内容,如果未能解决你的问题,请参考以下文章
Sonata Admin MongoDB DataGrid 过滤器
Sonata admin:默认情况下将过滤器设置为 false?