Таблица role_permission
Таблица role_permission является ключевым компонентом системы управления доступом в Drupal. Она хранит связи между ролями пользователей (role) и разрешениями (permission), которые определяют, какие операции могут выполнять пользователи, принадлежащие к данной роли.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
rid |
varchar(255)
|
Идентификатор роли (Role ID). Внешний ключ, ссылается на таблицу role.
|
permission |
varchar(128)
|
Машинное имя разрешения. Разрешения определяют конкретные действия, которые могут быть выполнены (например, access content, administer nodes).
|
Как это работает
Когда пользователь входит в систему, Drupal определяет все роли, назначенные этому пользователю. Затем система собирает все разрешения, связанные с этими ролями через таблицу role_permission, и объединяет их в один список. Этот список разрешений проверяется при попытке пользователя выполнить любое действие в системе.
Разрешения обычно определяются модулями Drupal через hook_permission(). Каждый модуль объявляет, какие разрешения он предоставляет для контроля доступа к своим функциям.
Администраторы сайта могут управлять правами доступа через административный интерфейс по пути admin/people/permissions, где они могут устанавливать флажки для назначения разрешений ролям. Каждое изменение в этом интерфейсе приводит к обновлению записей в таблице role_permission.
Важно отметить, что таблица не содержит первичного ключа в традиционном понимании, а использует комбинацию rid и permission для уникальной идентификации записей.
Пример SQL-запроса
Получить все разрешения для роли "authenticated user":
SELECT r.name as role_name, rp.permission
FROM role_permission rp
JOIN role r ON rp.rid = r.rid
WHERE r.name = 'authenticated user'
ORDER BY rp.permission;
Смотрите также
-
таблицу
role,
которая хранит определения ролей пользователей -
таблицу
users,
которая содержит учетные записи пользователей -
таблицу
users_roles,
которая связывает пользователей с ролями -
таблицу
config,
которая хранит конфигурации системы, включая настройки прав доступа