Плюшка CMS#26.04.2018

/* Создан для быстрой разработки приложений */
Скачать Демо

14.2. Общая информация о правах доступа и организации

15.10.2015

Как уже было сказано ранее, каждый администратор относится к одной из групп пользователей (с номерами от 200 до 255). Каждая из этих групп пользователей, в свою очередь, может иметь разные права управления сайтом (за исключением группы 255 — им можно всё). Права имеют булевой тип, тоесть «можно» или «нельзя» для какого-либо «права». Каждый модуль CMS может дополнять перечень возможных прав доступа.

Права привязываются к модулям CMS и записываются так: «ИМЯ_МОДУЛЯ.ИМЯ_ДЕЙСТВИЯ», например так: «article.category» (управление категориями статей), «article.article» (управление отдельными статьями), «html.*» (изменение текста в виджите «произвольный текст»).

Тут ИМЯ_МОДУЛЯ часто соответствует названию контроллера, но вообще модуль может иметь несколько контроллеров. Звёздочка обозначает «любые действия, связанные с этим модулем», но это условное обозначение и оно вовсе не означает, что движок кому-то разрешит любые запрошенные действия для данного модуля.

Права сохраняются в базе данных в таблице «userRight», которая имеет следующие поля:

Поле «groupId» определяет каким группам разрешён доступ к данному модулю и действию. Всем, кто не перечислен в этом поле действие запрещено (за исключением группы 255).

Записи в таблицу «userRight» можно заносить вручную, а также их могут создавать модули при установке (при удалении модуля эти записи также удаляются).

При авторизации любого пользователя, определяется к какой группе он относится. Если это группа с номером больше 199, то движок автоматически подгружает необходимые библиотеки, стили и JavaScript, реализующие административный диалог. Если группа пользователя меньше 200, то излишние скрипты не загружаются, ровно как и не происходит никакого анализа прав доступа.

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

На любой странице сайта в левом верхнем углу всегда расположен ряд «кнопок», открывающих диалоговые окна админки (их перечень, разумеется, зависит от назначенных прав), - это те элементы админки, которые справедливы для всех или большого количества страниц сайта (например «общие настройки», «группы пользователей» или «пользователи»). Именно права в таблице «userRight» определяют какие кнопки должны быть выведены в этой области: выводятся те, у которых поле «picture» не пустое. Текст всплывающей подсказки — это поле «description», содержимое всплывающего диалогового окна определяется полем «module» — будет подгружен контент по такой ссылке:

example.com/admin/index2.php?controller=ИМЯ_МОДУЛЯ&action=ИМЯ_ДЕЙСТВИя&_front

МОДУЛЬ и ДЕЙСТВИЕ — это содержимое поля «model», звёздочка заменяется словом «Index».