НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
23 of 182 menu

Таблица user_roles

Таблица user_roles является системной таблицей Drupal, которая хранит определения всех ролей пользователей. Роли представляют собой группы пользователей с определенными наборами разрешений, которые назначаются через административный интерфейс Drupal.

Поля

Поле Тип данных Описание
uid int Уникальный идентификатор роли. Является первичным ключом таблицы.
name varchar(64) Машинное имя роли. Должно быть уникальным и содержать только строчные латинские буквы, цифры и подчеркивания.
label varchar(64) Человекочитаемое название роли, которое отображается в интерфейсе администратора.
weight int Вес роли, определяющий порядок отображения ролей в списках. Роли с меньшим весом отображаются выше.

Как это работает

Drupal использует систему ролевого управления доступом (RBAC). Каждая роль в таблице user_roles имеет уникальный идентификатор (uid) и машинное имя (name). Связь между пользователями и ролями осуществляется через таблицу users_roles, которая является связующей таблицей многие-ко-многим.

Каждой роли назначаются определенные разрешения через административный интерфейс admin/people/permissions. Эти разрешения хранятся в таблице role_permission.

По умолчанию Drupal создает три основные роли: "Анонимный пользователь" (anonymous user), "Аутентифицированный пользователь" (authenticated user) и "Администратор" (administrator). Роль "Аутентифицированный пользователь" автоматически назначается всем зарегистрированным пользователям.

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

Пример SQL-запроса

Получить список всех ролей с их весом можно следующим запросом:

SELECT uid, name, label, weight FROM user_roles ORDER BY weight ASC, name ASC;

Найти пользователей, имеющих определенную роль:

SELECT u.uid, u.name as username, r.label as role_name FROM users u INNER JOIN users_roles ur ON u.uid = ur.uid INNER JOIN user_roles r ON ur.rid = r.rid WHERE r.name = 'content_editor';

Смотрите также

  • таблицу users,
    которая хранит информацию о пользователях
  • таблицу users_roles,
    которая связывает пользователей с ролями
  • таблицу role_permission,
    которая хранит разрешения для ролей
  • таблицу sessions,
    которая управляет пользовательскими сессиями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить