PHP-платформа Wad-er уже содержит встроенный интерфейс для контроля доступа на основе ролей (RBAC). Рассмотрим основные понятия реализации контроля доступа.
Право является объектом. Запись о нем в БД содержит его ID и название, родитель (например, модуль, на который устанавливаются права доступа).
Для работы с правами используется меню Управление доступом – Права.
Роль является объектом. Роль - это определенный набор прав для группы пользователей. Запись о роли в БД содержит ID и название, родитель (например, модуль, с которым связана роль).
Для работы с ролями используется меню Управление доступом – Роли.
Пользователи и роли. Каждый пользователь может выполнять неограниченное количество ролей. Его права будут определяться суперпозицией прав выполняемых ролей.
Для установления связи между пользователями и ролями используется матрица Пользователи-Роли (меню Управление доступом – Пользователи-Роли). Это кросс-таблица, позволяющая на пересечении колонок (роли) и столбцов (пользователи) установить связь между ними нажатием левой кнопки мыши (зеленая иконка означает, что связь установлена).
Права и роли. Для каждой роли пользователей определяется соответствующий набор прав на функции. Для каждого права задается его глубина в разрезе CRUD (ДЧИУ) – отдельных прав на создание (Create - Добавить), чтение (Read -Читать), обновление (Update - Изменить) и удаление (Delete - Удалить).
Для установления связи между правами и ролями используется матрица Права-Роли (меню Управление доступом – Права-Роли). Это кросс-таблица, позволяющая на пересечении колонок (роли) и столбцов (права) установить связь между ними в разрезе ДЧИУ нажатием левой кнопки мыши на кнопку соответствующего права (зеленая иконка означает, что соответствующее право доступно). Кросс-таблицу Права-Роли можно посмотреть в разрезе прав модулей.
Страницы и роли. Для каждой роли пользователей определяется соответствующий набор прав на страницы WEB-приложения (объекты). Для установления связи между страницами и ролями используется матрица Страницы-Роли (меню Управление доступом – Страницы-Роли). Это кросс-таблица, позволяющая на пересечении колонок (роли) и столбцов (страницы) установить связь между ними нажатием левой кнопки мыши (зеленая иконка означает, что связь установлена).
Определить, каким ролям будет доступна страница, можно в карточке каждой страницы (меню Элементы сайта-Страницы (меню)) на вкладке Роли.