Рейтинг:1

Filter view based on current user's role and taxonomy terms

флаг br

I have three content types.

  • Article
  • Basic Page
  • Custom Page

All the content types have a field_interests field, which can have multiple values, and which is an entity reference field to the interests vocabulary.

The taxonomy terms for that vocabulary are:

  • sports
  • songs
  • movies

I have three user roles.

  • Athlete
  • Singer
  • Actor

I want to create a view in which:

  • Athlete users can view nodes for which the value of field_interests is sports
  • The Singer users can view nodes for which the value of field_interests is songs
  • The Actor users can view nodes for which the value of field_interests is movies

I am assuming filter condition should be like this

( current user's role == athlete AND "field_interests"==sports ) OR
( current user's role == Singer AND "field_interests"==songs) OR
( current user's role == Actor AND "field_interests"==movies)
// if any user has multiple user roles 
( All current user roles in [Singer , Actor] AND All "field_interests" in [songs , movies] )

I saw similar questions and I don't know how to use those answers to my exact purpose.

флаг cn
Роли в Drupal не являются эксклюзивными (каждый пользователь может иметь несколько ролей). Итак, что должно произойти, если у пользователя есть роли Актера и Певца?
флаг ru
Это будет намного проще, если вы создадите 3 отдельных вида, каждый из которых будет отображать только один «интерес». А затем ограничьте доступ к этим представлениям, назначив соответствующие разрешения вашим ролям пользователей.
Steve Siddu avatar
флаг br
@Hudri Да, я пробовал это, но если мне нужно создать 15 представлений, которые должны отображать контент в зависимости от роли, и предположим, что у меня есть 10 ролей, в этом случае мне нужно создать 150 представлений. То есть, я чувствую, что это не очень хорошая практика.
Steve Siddu avatar
флаг br
@PatrickKenny В моем случае я позабочусь о том, чтобы у каждого пользователя была одна роль. но в любом случае, если у пользователя есть роли актера и певца, я хочу добавить новое условие, например «все текущие роли пользователя в [Актер, певец]».
Steve Siddu avatar
флаг br
@PatrickKenny, как я могу динамически установить значение термина таксономии [см. Здесь] (https://drupal.stackexchange.com/questions/308415/how-to-add-filters-in-drupal-8-dynamicly), нужна помощь

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.