Как я могу позволить отображать только определенные узлы на основе пользовательских ролей?
По сути, я не хочу разрешать доступ к узлам пользователям определенной роли.
Как я могу позволить отображать только определенные узлы на основе пользовательских ролей?
По сути, я не хочу разрешать доступ к узлам пользователям определенной роли.
Ответы:
Вы пробовали модуль доступа к контенту
Этот модуль позволяет вам управлять разрешениями для типов контента по роли и автору. Это позволяет вам определять пользовательский вид, редактировать и удалять разрешения для каждого типа контента. При желании вы можете включить настройки доступа к контенту, чтобы вы могли настроить доступ для каждого узла контента.
То, о чем вы говорите, это контроль доступа к узлам Drupal, который является огромной темой.
Встроенная в ядро поддержка управления доступом к узлу довольно грубая, и для управления доступом для просмотра узла по роли необходимо использовать какой-то модуль управления доступом к узлу.
На Drupal.org есть страница со списком всех модулей доступа к узлам с кратким обзором каждого из них. Я предлагаю вам взглянуть на эту страницу и посмотреть, сможете ли вы найти подходящий модуль для управления доступом на основе ролей.
При работе с контролем доступа, это помогает понять, как на самом деле работают модули контроля доступа Drupal, вот краткое описание:
Пользователи, которым предоставлено разрешение на администрирование узлов, никогда не ограничиваются контролем доступа к узлам. Пользователи, у которых нет разрешения на просмотр опубликованного контента, никогда не могут получить доступ от модуля доступа к узлу. Только пользователи, которые имеют «доступ к контенту», а не «администрируют узлы», имеют право на дикий мир управления модулем доступа к узлам.
Управление доступом к узлам в Drupal, как правило, является дополнением . Это означает, что любой модуль, осуществляющий управление доступом в соответствии с «философией Drupal», должен только разрешать доступ, но не запрещать его. Администратор, который хочет точно настроить доступ к узлу, должен сначала убедиться, что никто не имеет доступа, а затем добавить разрешения на доступ любому, кто должен иметь доступ.
Это означает, что может быть довольно затруднительно ограничивать доступ для отдельных пользователей с помощью модуля, такого как Content Access , поскольку вы должны сначала запретить доступ всем , а затем добавить его обратно на те узлы, которые вы не хотите ограничивать. Тем не менее, я думаю, что это лучший вариант, если вам действительно нужно делать это узел за узлом. Его основное разрешение - типы контента, но оно позволяет вам переопределить это для отдельных узлов.
К сожалению, вы не сможете использовать запретить доступ, поскольку он работает только с типами контента, без переопределения для отдельных узлов.
NB. Использование более одного модуля доступа к узлам не рекомендуется.
Обратите внимание, что если вы можете изменить свои требования, чтобы использовать тип контента в качестве базового элемента для управления доступом к узлу, то запретить доступ будет идеальным. Например, если у вас есть роль «студент» и вы хотите запретить доступ к узлам с ответами, вы можете создать тип контента «Ответ» (который может быть просто клоном «Статьи» по умолчанию), и запретить доступ будет позаботьтесь о защите всех узлов типа «Ответ» от просмотра ролью «студент».