Как ограничить доступ к узлам на основе ролей пользователей? [закрыто]


8

Как я могу позволить отображать только определенные узлы на основе пользовательских ролей?

По сути, я не хочу разрешать доступ к узлам пользователям определенной роли.


3
Не уверен, почему они закрыли ваш вопрос, это хороший вопрос. И для тех, кто может быть заинтересован, я всегда решаю эти типы проблем, создавая собственный модуль и переопределяя api.drupal.org/api/drupal/modules%21node%21node.api.php/… ... полный контроль, нет накладные расходы в виде массивных модулей, способ проще и надежнее.
Coderama

1
@coderama Это немного широко, без ОП, показывающего то, что они пробовали до сих пор. Такие вопросы получают широкие ответы, которые, вероятно, не помогут будущим пользователям.
kiamlaluno

Ответы:


3

Вы пробовали модуль доступа к контенту

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


1
Если вам не нужны разрешения на основе узлов, то более простым модулем является модуль разрешений на просмотр узлов, который управляет доступом только на основе типа контента и роли пользователя.
Джевон

1
Этот модуль является бета-версией для Drupal 7
Тоби Аллен

16

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

Встроенная в ядро ​​поддержка управления доступом к узлу довольно грубая, и для управления доступом для просмотра узла по роли необходимо использовать какой-то модуль управления доступом к узлу.

На Drupal.org есть страница со списком всех модулей доступа к узлам с кратким обзором каждого из них. Я предлагаю вам взглянуть на эту страницу и посмотреть, сможете ли вы найти подходящий модуль для управления доступом на основе ролей.

При работе с контролем доступа, это помогает понять, как на самом деле работают модули контроля доступа Drupal, вот краткое описание:

  1. Пользователи, которым предоставлено разрешение на администрирование узлов, никогда не ограничиваются контролем доступа к узлам. Пользователи, у которых нет разрешения на просмотр опубликованного контента, никогда не могут получить доступ от модуля доступа к узлу. Только пользователи, которые имеют «доступ к контенту», а не «администрируют узлы», имеют право на дикий мир управления модулем доступа к узлам.

  2. Управление доступом к узлам в Drupal, как правило, является дополнением . Это означает, что любой модуль, осуществляющий управление доступом в соответствии с «философией Drupal», должен только разрешать доступ, но не запрещать его. Администратор, который хочет точно настроить доступ к узлу, должен сначала убедиться, что никто не имеет доступа, а затем добавить разрешения на доступ любому, кто должен иметь доступ.

Это означает, что может быть довольно затруднительно ограничивать доступ для отдельных пользователей с помощью модуля, такого как Content Access , поскольку вы должны сначала запретить доступ всем , а затем добавить его обратно на те узлы, которые вы не хотите ограничивать. Тем не менее, я думаю, что это лучший вариант, если вам действительно нужно делать это узел за узлом. Его основное разрешение - типы контента, но оно позволяет вам переопределить это для отдельных узлов.

К сожалению, вы не сможете использовать запретить доступ, поскольку он работает только с типами контента, без переопределения для отдельных узлов.

NB. Использование более одного модуля доступа к узлам не рекомендуется.

Обратите внимание, что если вы можете изменить свои требования, чтобы использовать тип контента в качестве базового элемента для управления доступом к узлу, то запретить доступ будет идеальным. Например, если у вас есть роль «студент» и вы хотите запретить доступ к узлам с ответами, вы можете создать тип контента «Ответ» (который может быть просто клоном «Статьи» по умолчанию), и запретить доступ будет позаботьтесь о защите всех узлов типа «Ответ» от просмотра ролью «студент».


1
в основном я не хочу разрешать доступ к узлам пользователям определенной роли, это слишком сложно реализовать?
харшал
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.