Иерархия ролей и управление назначенными пользователями

Мне нужно настроить иерархию роли следующим образом:

  • Super Admin - Полные разрешения, могут управлять всеми пользователями и контентом

    • Региональный менеджер - может управлять только своими собственными менеджерами магазинов; не могут управлять менеджерами Менеджеров других региональных менеджеров. Может управлять тем пользователям.
      • Менеджер магазина - может управлять только своими сотрудниками; не могут управлять сотрудниками другого менеджера магазина. Может управлять этими пользователями, также.
        • Сотрудник - нижний конец тотемного полюса. Все, что они могут сделать, это создать контент определенного типа.

Как я могу настроить настройку?

Спасибо!

5 голосов | спросил hockey2112 4 Mayam13 2013, 03:22:00

2 ответа


0

Иерархия роли Drupal

Drupal имеет надежную и модульную систему разрешений. Вы создаете роли, предоставляете разрешения для ролей и назначаете пользователям одну или несколько ролей. Модули, которые предоставляют разные функции сайта, определяют разрешения и используют функцию user_access (), чтобы спросить Drupal, если у текущего пользователя есть определенное разрешение. Чтобы выяснить, как Drupal управляет разрешениями, можно указать пример:

У нас есть очень простой сайт, который использует модуль таксономии, этот модуль позволяет пользователям классифицировать контент. Допустим, у нас есть имя пользователя, которому назначена роль, называемая редактором. Drupal использует статическую переменную с именем $ perm, эта переменная представляет собой массив различных разрешений, которые имеет текущий зарегистрированный пользователь. Когда мы выполняем user_access, Drupal проверяет, содержит ли массив $ perm массив разрешений, которые мы отправляем в качестве параметра.

Модуль таксономии определяет только одно разрешение под названием «Администрирование таксономии», если роль редактора имеет это разрешение, тогда переменная $ perm переменной john будет содержать строку «Администрирование таксономии». Когда мы пытаемся получить доступ к странице таксономии администрирования, модуль таксономии будет вызывать функцию user_access, отправляющую «Администратор таксономии» в качестве параметра. Если мы войдем в систему как функция john, функция вернет true, и мы сможем получить доступ к этой странице. Это очень простой пример и удовлетворит все требования, необходимые для базового сайта, потому что у таких сайтов обычно есть один или два редактора.

При разработке сайтов, которым управляет большее количество людей, разрешения необходимо обрабатывать более сложным образом. Мы хотели бы, чтобы у нас была иерархия ролей, чтобы разрешения могли наследоваться, и мы можем перемещать роли вокруг дерева иерархии, как мы можем, с таксономическими терминами. Это не особенность, которую Drupal имеет в своем распоряжении. Drupal имеет только два уровня в своей основной иерархии ролей, и разрешения наследуются во всех этих ролях. Некоторые из вас, которые уже давно использовали Drupal, уже знают об этом. Первый уровень ролей Drupal - это базовые роли Drupal по умолчанию, которые невозможно отредактировать или удалить: Анонимные и Authenthicated. Любая новая созданная роль будет создана как дочерний элемент аутентифицированной роли, и разрешения, предоставляемые этой роли, будут автоматически наследоваться с помощью любой созданной новой роли.

Я еще не нашел модуль, который позволяет администратору обрабатывать роли иерархически, и я считаю, что причина этого в том, что Drupal не реализует функцию db_sql_rewrite при выделении разрешений. Это означает, что никакие другие модули не могут переписать запрос, используемый Drupal при загрузке разрешений. Хотите это на своем сайте? Модуль находится на своем пути с соответствующим файлом патча.

Это только что началось, и оно будет доступно в сообществе за короткое время. Но так, чтобы вы знали, это изменение также было предложено для Drupal 7 tho. Я не уверен, что его можно будет рассмотреть.

ответил Adi 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 23 Sep 2015 08:23:20 +0300 2015, 08:23:20
0

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

Более подробная информация (из документации сообщества о подгруппах):

  

После того, как модуль подгруппы активирован, вы можете использовать его, перейдя на страницу конфигурации типа группы (/admin/group/type), нажав «config» 'на тип группы (/admin/group/type/manage/GROUPTYPE/config), а затем щелкнуть по маленькой вкладке «Подгруппы», которая появляется (/admin/group/type/manage/GROUPTYPE/config/subgroup), как показано на этом изображении:

     

 введите описание изображения здесь>> </a> </p>
</blockquote></body></html>

ответил Pierre.Vriens 30 +03002016-10-30T12:28:09+03:00312016bEurope/MoscowSun, 30 Oct 2016 12:28:09 +0300 2016, 12:28:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132