Drupal 7 – работа с пользователями и ролями

В настоящее время поддержка многопользовательского режима для современных веб-приложений является одним из ключевых факторов на пути к завоеванию популярности среди пользователей и их же симпатии. Так, например, если уникальность контента очень привлекает поисковые системы и способствует продвижению сайта в топ поисковой выдачи. То возможность пообщаться, подискутировать в комментариях к статьям. Или писать собственные статьи, делясь информацией, опытом и т. д. привлекает и часто заставляет возвращаться на полюбившийся ресурс уже самих пользователей. Это довольно занятно — иметь своё место в сети на разных сайтах. Оформляя аккаунты по вкусу, задавая никнеймы, аватары, статусы, олицетворяя таким образом в электронной вселенной собственную персону. Для администраторов многопользовательский доступ — это прежде всего сфера повышенной ответственности по управлению сайтом. В данной статье речь пойдёт о том, как организован многопользовательский доступ и как, собственно, управлять пользователями в популярной CMS Drupal 7.

Концепция многопользовательского доступа для сайтов Drupal

В базовой поставке дистрибутива Drupal предусмотрена довольно продвинутая система многопользовательского доступа к сайту. Пользователь в Drupal – это не просто учётная запись. Но ещё и набор разрешений на доступ и использование функционала системы. Пользователь связан со своими разрешениями посредством членства в группе. А группа — это и есть набор разрешений, которыми она определяется.

По-умолчанию, при создании нового пользователя, если в системе нет других групп кроме тех, что определены по-умолчанию (администратор и авторизованный пользователь). Он (пользователь) добавляется именно в группу авторизованных пользователей. Это те пользователи, которые прошли авторизацию при входе на сайт. Но при этом не входят ни в какую специально определённую для них группу. Об этом администраторам необходимо помнить при проведении многопользовательской политики. Как нетрудно догадаться, группы создаются отдельно от пользователей. Для каждой группы определяются разрешения в системе. Это в общем-то, классическая модель многопользовательского доступа и распределения прав. Ключевыми элементами здесь являются разрешения, ключевыми субъектами — пользователи. Ну а объединяющими и связывающими элементами между разрешениями и пользователями являются роли. Они служат исключительно для удобства проведения той самой политики многопользовательского доступа. Ведь куда практичнее и быстрее управлять одной группой пользователей, нежели отдельно каждым из них. А два и более пользователей с идентичными разрешениями, которые можно (и нужно) заключить в группу, найдутся всегда.

Некоторые дополнительные модули, которые так или иначе связаны с расширением функционала многопользовательского доступа в Drupal. Могут дополнять страницы интерфейса панели администрирования для управления пользователями и разрешениями новыми элементами. Таковыми являются вкладки в верхней части страницы. По-умолчанию, в базовой поставке Drupal 7 доступно две — «СПИСОК» и «ПРАВА ДОСТУПА». Например, если установить модуль HybridAuth Social Login, то добавится и соответствующая вкладка — «HYBRIDAUTH». Она направляет на страницу просмотра доступных для конкретного пользователя учётных записей социальных сетей, с помощью которых он авторизуется на сайте.

Рис. 1: Общий вид страницы управления пользователями по-умолчанию (без дополнительных модулей).
Рис. 1: Общий вид страницы управления пользователями по-умолчанию (без дополнительных модулей).

Также в результате установки новых модулей могут добавляться и новые категории настроек на страницу конфигурирования учётной записи пользователя. Так, после установки модуля CKEditor, доступна новая категория настроек «НАСТРОЙКИ РАСШИРЕННОГО ТЕКСТОВОГО РЕДАКТОРА». Которая позволяет сконфигурировать для пользователя использование расширенного текстового WYSIWYG-редактора для создания текстового содержимого материалов и/или статей на сайте. Подобные возможности по-умолчанию доступны только администратору. Однако, в соответствии с проводимыми политиками безопасности и многопользовательского доступа. Можно настроить соответствующие разрешения и для групп обычных пользователей.

Рис. 2: Категория настроек, добавляемая модулем CKEditor на странице редактирования учётной записи пользователя.
Рис. 2: Категория настроек, добавляемая модулем CKEditor на странице редактирования учётной записи пользователя.

Управление ролями

В сложных проектах на Drupal без использования ролей вряд ли можно обойтись. Но в каком бы случае они ни использовались, роли должны создаваться заранее. Также для них должен быть подготовлен набор разрешений. Именно этому набору следует уделять особое внимание и формировать его нужно также очень тщательно. Ведь это напрямую влияет на безопасность системы.

Роли создаются на странице управления разрешениями, доступной по адресу http://drupal-site/admin/people/permissions/roles. Условно предполагается, что базовый адрес сайта http://drupal-site. На следующих рисунках можно видеть, как организован пользовательский интерфейс панели администрирования по управлению ролями и разрешениями пользователей:

Рис. 3: Добавление новой роли (группы) на странице управления ролями в Drupal 7.
Рис. 3: Добавление новой роли (группы) на странице управления ролями в Drupal 7.

Как можно видеть, для создания роли предназначена соответствующая кнопка. Роли необходимо задать имя и далее назначить ей требуемые разрешения. Отметив соответствующие чекбоксы в общем списке всех доступных для системы. Который формируется из функционала как ядра Drupal, так и установленных и включенных на данный момент модулей. После всех сделанных настроек необходимо сохранить изменения нажатием на кнопку «Сохранить» внизу страницы.

Рис. 4: Административная страница со списком разрешений для роли.
Рис. 4: Административная страница со списком разрешений для роли.

Управление пользователями

Для управления пользователями служит административная страница по адресу http://drupal-site/admin/people. Здесь приводится список всех зарегистрированных на сайте пользователей. Набор фильтров для показа только определённых категорий пользователей. А также основные действия над пользовательскими аккаунтами: блокировка/разблокировка учётных записей, удаление и назначение ролей. Следует заметить, что пользователь может входить только в одну группу, т. е. иметь только одну роль.

Для добавления нового пользователя предназначена ссылка «Добавить пользователя» вверху страницы:

Рис. 5: административная страница добавления нового пользователя в Drupal 7.
Рис. 5: административная страница добавления нового пользователя в Drupal 7.

Страница настроек пользователя

После нажатия на ссылку «Добавить пользователя» будет загружена административная страница для редактирования параметров учётной записи пользователя. По-умолчанию, без дополнительных модулей здесь доступны следующие категории настроек:

  • имя пользователя и его регистрационный e-mail – обязательные поля;
  • пароль — обязательное поле;
  • статус — активен или заблокирован;
  • назначаемая роль — по-умолчанию «авторизованный пользователь»;
  • языковые настройки — используется для отображения меню и элементов управления пользовательского интерфейса на требуемом языке.

Как уже отмечалось выше, при установке и включении дополнительных модулей, на этой странице могут появляться новые категории настроек. А также вкладки, в зависимости от того, какой функционал предоставляется этими модулями. В целях безопасности некоторые категории настроек на данной странице следует разрешать только для администраторов или модераторов сайта.

По завершении редактирования учётной записи необходимо сохранить сделанные изменения. Нажав на всё ту же кнопку «Сохранить» внизу страницы.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-05-27T12:34:30
Drupal