Представления Drupal 8: игнорировать контекстный фильтр для роли администратора

У меня есть представление, обслуживающее поле ссылки на сущность. Мне это нужно, чтобы: (1) вытащить контент, созданный текущим вошедшим в систему пользователем, (2) если текущий авторизованный пользователь не имеет роли «администратора», и в этом случае вытащить весь контент.

В настоящее время у меня установлен контекстный фильтр «Автор», который отлично подходит для требования (1). Думаю, мне нужно обойти фильтр по ролям. Для отображения «блока» или «страницы» я могу просто продублировать отображение, установить для него разрешения в зависимости от роли, и все будет без проблем. Но поскольку это поле ссылки на сущность, я могу указать только одно отображение в настройках поля. Любые идеи?


person yycroman    schedule 23.05.2017    source источник


Ответы (1)


В Drupal 8 я смог сделать это без какого-либо модуля contrib, такого как контекстные фильтры ИЛИ.

  1. добавьте контекстный фильтр Автор: для вашего типа сущности
  2. выберите указать значение по умолчанию ... от вошедшего в систему пользователя
  3. ниже в разделе «при наличии значения» выберите «укажите критерии проверки.
  4. Для валидатора выберите User ID
  5. отметьте «ограничить пользователя на основе роли»
  6. выберите роли НЕ-АДМИНИСТРАТОРА
  7. для «Действия, которые необходимо предпринять, если значение фильтра не проверяется» выберите «отобразить все результаты»

Таким образом, если его просматривают не администраторы, он будет отображаться только там, где идентификатор пользователя, вошедшего в систему, совпадает с владельцем объекта. Для админов это все покажет.

person ransomweaver    schedule 29.11.2017