Не уверен, почему они закрыли ваш вопрос, это хороший вопрос. И для тех, кто может быть заинтересован, я всегда решаю эти типы проблем, создавая собственный модуль и переопределяя api.drupal.org/api/drupal/modules%21node%21node.api.php/… ... полный контроль, нет накладные расходы в виде массивных модулей, способ проще и надежнее.
Coderama
1
@coderama Это немного широко, без ОП, показывающего то, что они пробовали до сих пор. Такие вопросы получают широкие ответы, которые, вероятно, не помогут будущим пользователям.
Этот модуль позволяет вам управлять разрешениями для типов контента по роли и автору. Это позволяет вам определять пользовательский вид, редактировать и удалять разрешения для каждого типа контента. При желании вы можете включить настройки доступа к контенту, чтобы вы могли настроить доступ для каждого узла контента.
Если вам не нужны разрешения на основе узлов, то более простым модулем является модуль разрешений на просмотр узлов, который управляет доступом только на основе типа контента и роли пользователя.
Джевон
1
Этот модуль является бета-версией для Drupal 7
Тоби Аллен
16
То, о чем вы говорите, это контроль доступа к узлам Drupal, который является огромной темой.
Встроенная в ядро поддержка управления доступом к узлу довольно грубая, и для управления доступом для просмотра узла по роли необходимо использовать какой-то модуль управления доступом к узлу.
При работе с контролем доступа, это помогает понять, как на самом деле работают модули контроля доступа Drupal, вот краткое описание:
Пользователи, которым предоставлено разрешение на администрирование узлов, никогда не ограничиваются контролем доступа к узлам. Пользователи, у которых нет разрешения на просмотр опубликованного контента, никогда не могут получить доступ от модуля доступа к узлу. Только пользователи, которые имеют «доступ к контенту», а не «администрируют узлы», имеют право на дикий мир управления модулем доступа к узлам.
Управление доступом к узлам в Drupal, как правило, является дополнением . Это означает, что любой модуль, осуществляющий управление доступом в соответствии с «философией Drupal», должен только разрешать доступ, но не запрещать его. Администратор, который хочет точно настроить доступ к узлу, должен сначала убедиться, что никто не имеет доступа, а затем добавить разрешения на доступ любому, кто должен иметь доступ.
Это означает, что может быть довольно затруднительно ограничивать доступ для отдельных пользователей с помощью модуля, такого как Content Access , поскольку вы должны сначала запретить доступ всем , а затем добавить его обратно на те узлы, которые вы не хотите ограничивать. Тем не менее, я думаю, что это лучший вариант, если вам действительно нужно делать это узел за узлом. Его основное разрешение - типы контента, но оно позволяет вам переопределить это для отдельных узлов.
К сожалению, вы не сможете использовать запретить доступ, поскольку он работает только с типами контента, без переопределения для отдельных узлов.
NB. Использование более одного модуля доступа к узлам не рекомендуется.
Обратите внимание, что если вы можете изменить свои требования, чтобы использовать тип контента в качестве базового элемента для управления доступом к узлу, то запретить доступ будет идеальным. Например, если у вас есть роль «студент» и вы хотите запретить доступ к узлам с ответами, вы можете создать тип контента «Ответ» (который может быть просто клоном «Статьи» по умолчанию), и запретить доступ будет позаботьтесь о защите всех узлов типа «Ответ» от просмотра ролью «студент».
Ответы:
Вы пробовали модуль доступа к контенту
источник
То, о чем вы говорите, это контроль доступа к узлам Drupal, который является огромной темой.
Встроенная в ядро поддержка управления доступом к узлу довольно грубая, и для управления доступом для просмотра узла по роли необходимо использовать какой-то модуль управления доступом к узлу.
На Drupal.org есть страница со списком всех модулей доступа к узлам с кратким обзором каждого из них. Я предлагаю вам взглянуть на эту страницу и посмотреть, сможете ли вы найти подходящий модуль для управления доступом на основе ролей.
При работе с контролем доступа, это помогает понять, как на самом деле работают модули контроля доступа Drupal, вот краткое описание:
Пользователи, которым предоставлено разрешение на администрирование узлов, никогда не ограничиваются контролем доступа к узлам. Пользователи, у которых нет разрешения на просмотр опубликованного контента, никогда не могут получить доступ от модуля доступа к узлу. Только пользователи, которые имеют «доступ к контенту», а не «администрируют узлы», имеют право на дикий мир управления модулем доступа к узлам.
Управление доступом к узлам в Drupal, как правило, является дополнением . Это означает, что любой модуль, осуществляющий управление доступом в соответствии с «философией Drupal», должен только разрешать доступ, но не запрещать его. Администратор, который хочет точно настроить доступ к узлу, должен сначала убедиться, что никто не имеет доступа, а затем добавить разрешения на доступ любому, кто должен иметь доступ.
Это означает, что может быть довольно затруднительно ограничивать доступ для отдельных пользователей с помощью модуля, такого как Content Access , поскольку вы должны сначала запретить доступ всем , а затем добавить его обратно на те узлы, которые вы не хотите ограничивать. Тем не менее, я думаю, что это лучший вариант, если вам действительно нужно делать это узел за узлом. Его основное разрешение - типы контента, но оно позволяет вам переопределить это для отдельных узлов.
К сожалению, вы не сможете использовать запретить доступ, поскольку он работает только с типами контента, без переопределения для отдельных узлов.
NB. Использование более одного модуля доступа к узлам не рекомендуется.
Обратите внимание, что если вы можете изменить свои требования, чтобы использовать тип контента в качестве базового элемента для управления доступом к узлу, то запретить доступ будет идеальным. Например, если у вас есть роль «студент» и вы хотите запретить доступ к узлам с ответами, вы можете создать тип контента «Ответ» (который может быть просто клоном «Статьи» по умолчанию), и запретить доступ будет позаботьтесь о защите всех узлов типа «Ответ» от просмотра ролью «студент».
источник