При входе в систему я хочу проверить стороннего источника данных (таблица в БД) для пользователя, и, если найден, я хочу добавить роль для этого пользователя.
Я не хочу угадывать избавление от роли, я хочу получить его из названия роли.
Это довольно просто с user_roles () и array_search () . Ниже приведена функция, которая возвращает идентификатор роли, если существует роль, соответствующая имени, и FALSE в противном случае.
function get_role_by_name($name) {
$roles = user_roles();
return array_search($name, $roles);
}
// Sample usage
$rid = get_role_by_name('administrator');
Один лайнер будет:
$rid = array_search('administrator', user_roles());
Зная имя машины на роль, ее достаточно использовать
user_role_load_by_name()
.Если Роль может не существовать ...
источник
Лучший способ определить роль и ее идентификатор из SQL. Запустите этот запрос в вашем редакторе SQL.
И вы получите список ролей, включая идентификатор и вес.
источник