Как реализовать управление доступом к узлу с помощью простого поля, используемого при создании узла?


У меня несколько ролей на сайте. Я использовал поле Ссылка на роль в узлах, чтобы выбрать, какая роль должна видеть узлы. Затем я установил Представления для отображения содержимого на основе ролей и поля ссылки на роль в узле.

Теперь я столкнулся с проблемой поиска. Поиск показывает все содержимое, и пользователи с разными ролями могут видеть все содержимое.

Я искал решение для установки доступа для каждого узла, но Доступ к контенту и Nodeaccess модули разрешают устанавливать доступ только после создания узла . И в этом случае пользователю необходимо установить доступ к двум полям: Поле ссылки на роль И вкладка Доступ к контенту/Nodeaccess. Нехорошо. Я не хочу создавать собственный тип контента для каждой роли.

Есть ли способ использовать поле ссылки на роль для установки контроля доступа к узлу?

Я установил модули доступа к контенту и Nodeaccess и попытался использовать модуль Правил для достижения этой цели, но, похоже, ни один из модули поддерживают правила.

Любая помощь/советы приветствуются.

Author: Pierre.Vriens, 2016-03-01

2 answers

Вы можете заставить это работать, используя комбинацию модуля Правил и модуля Доступа к контенту , в то время как модуль правил автоматически (за кулисами) запустит необходимую логику. Сама логика полностью скрыта для пользователя (автора).

Вот еще несколько деталей, чтобы заставить его работать:

  1. Начните с правила, аналогичного примеру, который я включил в свой ответ на " Как указать условие правил, связанное с выбором перечислить значения?".

  2. В этом примере правила используется поле с именем field_optionlist с 3 возможными значениями A, B, C. В вашем случае вы должны использовать имя поля вашего Ссылка на роль поле, и вы также должны настроить возможные значения для этого поля. Еще несколько советов, которые помогут вам двигаться дальше:

    • Обязательно настройте имя поля этого поля (чтобы оно соответствовало уже имеющемуся у вас имени) ПЕРЕД импортом образца правила в пункте "1" выше (если не импорт правило потерпит неудачу).
    • Адаптируйте условие Правил, связанное со значением "значение = C", к значениям, соответствующим вашему случаю, и сообщению, включенному в действие Правил.
  3. QA-проверьте промежуточный результат после выполнения шага "2".: при создании узла должно отображаться соответствующее сообщение Drupal.

  4. Используйте интеграцию модуля Доступа к контенту с модулем Правил, чтобы создать действие Правил, которое обновляет доступ к узел, аналогичный действию Правил, которое я включил в свое примерное правило, включенное в мой ответ на вопрос"Как отозвать доступ к редактированию у автора узла после публикации узла?". Фактические настройки, используемые для модуля доступа к контенту, конечно, должны совпадать с вашими настройками.

 2
Author: Pierre.Vriens, 2017-04-13 12:46:59

Вместо использования этих модулей вы могли бы просто создать поле таксономии и использовать Правила "Содержимое просматривается" и проверить наличие таксономии и текущей роли пользователя. Для представлений используйте отдельные представления для каждой роли.

 1
Author: Niall Murphy, 2016-03-04 23:06:59