Предоставьте определенной роли пользователя возможность предоставить пользователю роль, но не роль "администратор"


У меня есть настройка с использованием drupal 7, где я, как суперадминистратор, могу добавить пользователя с ролью "менеджер" (который также может добавлять пользователей в свой магазин), но я также хочу предоставить "менеджеру" возможность указать, будет ли у пользователя, которого он хочет добавить, одна из двух простых ролей (одна для создания/добавления данных и одна для просмотра отчетов только о продажах), скажем, "торговый агент", "отчет о продажах". В настоящее время в моей настройке менеджер может указать все роли, включая роль "администратор", которую я должен иметь доступ только в качестве разработчика/суперадминистратора.

Я искал модули, подходящие для этого, но мое время истекает.

Спасибо за всю вашу помощь. Друпал - это здорово!

 1
Author: wiifm, 2011-07-03

2 answers

Для вас есть идеальный модуль - Делегирование ролей, а также стабильная версия 7.x. Вот выдержка об этом со страницы проекта модуля:

... позволяет администраторам сайта предоставлять некоторым ролям полномочия назначать выбранные роли пользователям без необходимости разрешения "администрировать".

Для каждой роли Делегирование ролей предоставляет новое разрешение роли "Назначить РОЛЬ", позволяющее назначать эту роль.

 1
Author: wiifm, 2020-06-15 09:13:00

Используйте модуль Флаг для создания 2 (не глобальных) флагов со следующими деталями:

  • Эти флаги будут использоваться для обозначения пользователей (не узлов или чего-то еще).

  • Скажем, вы помечаете эти флаги Создание/добавление данных и Просмотр отчетов.

  • Только пользователи, у которых есть роль менеджер разрешено использовать эти флаги (что-то, что вы можете указать при настройке этих флаги).

Создайте 1-е правило (используя модуль Правила), например:

  • Событие правил: Пользователь помечается Просмотр отчетов флаг.

  • Действие правил: Предоставьте доступ к вашей роли Просмотр отчетов.

Создайте 2-е правило, аналогичное 1-му правилу, но теперь для Создание/добавление данных ( флаг и роль).

Возможные улучшения

Вы могли бы сделайте еще один шаг вперед, также используя правила : Создайте 3-е (и 4-е) правило с событием правил "Пользователь не помечен" и запустите действие правил "Удалить доступ к роли, соответствующей флагу".

При желании вы даже можете объединить эти 4 правила в одно правило, используя модуль Условные правила.

Избегайте модульита

С помощью описанного выше подхода вы снижаете риск того, что ваш сайт начнет страдать модульностью (= слишком много внесенных модулей, которые делайте только 1 конкретную вещь). Потому что есть вероятность, что вы уже используете Правила на своем сайте, возможно, также Флаг уже. И если вы еще не используете эти модули, вы найдете десятки других вариантов использования для этих 2 модулей... и, возможно, избавиться от еще большего количества модулей, которые выполняют только 1 задачу (для чего еще вы можете использовать модуль делегирования ролей ?).

 0
Author: Pierre.Vriens, 2016-09-06 15:25:59