【问题标题】:Drupal 8 Views: Ignore a contextual filter for admin roleDrupal 8 视图:忽略管理员角色的上下文过滤器
【发布时间】:2017-10-23 16:35:31
【问题描述】:
我有一个服务于实体引用字段的视图。我需要它:
(1) 拉取当前登录用户创作的内容,
(2) 除非当前登录的用户具有“管理员”角色,在这种情况下拉取所有内容。
目前,我将上下文过滤器设置为“作者”,这对于要求 (1) 来说效果很好。我想我需要它来绕过基于角色的过滤器。对于“块”或“页面”显示,我可以复制一个显示,根据角色为其设置权限,并且是无缝的。但是因为这是一个实体引用字段,所以我只能在字段设置中指定一个显示。有什么想法吗?
【问题讨论】:
标签:
drupal
views
drupal-8
entityreference
【解决方案1】:
在 Drupal 8 中,我能够在没有任何 contrib 模块(如上下文过滤器或)的情况下做到这一点。
- 为您的实体类型添加作者上下文过滤器
- 从登录用户中选择提供默认值...
- 在下方的“何时提供值”部分中选择“指定验证标准”
- 对于验证器,请选择用户 ID
- 勾选“根据角色限制用户”
- 选择您的非管理员角色
- 对于“如果过滤器值未验证要采取的措施”,请选择“显示所有结果”
因此,如果非管理员查看,则只会显示登录用户 ID 与实体所有者匹配的位置。对于管理员,它将显示全部。