Как я могу проверить, есть ли у пользователя определенная роль?
Я нашел это, но это для Drupal 6.
Поскольку вы уже нашли этот пост , обязательно прочитайте комментарии. Это ясно объясняет, почему проверка на разрешение рекомендуется вместо проверки на роль. Когда вы используете разрешения, вы можете назначить это разрешение нескольким ролям, что делает вашу систему более гибкой. Кроме того, помните, что роли могут быть переименованы, что может нарушить ваш код.
Тем не менее, если вы хотите проверить роль, вы можете сделать это:
// Load the currently logged in user.
global $user;
// Check if the user has the 'editor' role.
if (in_array('editor', $user->roles)) {
// do fancy stuff
}
Чтобы проверить, имеет ли текущий пользователь одну или несколько ролей, отличный способ сделать это:
источник
Обновление для версии Drupal> = 7.36
Вы можете использовать функцию user_has_role из API Drupal https://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_has_role/7 .
Попробуйте этот пример:
источник
Вы можете установить модуль devel и сделать dpm ($ user). Это напечатает массив со всей пользовательской информацией, включая роль пользователя.
Из этого массива вы можете найти положение массива «role» и использовать его в своем модуле для поиска роли пользователя.
источник
Чтобы быть защищенным от будущего в случае изменения имени роли, лучше всего проверить идентификатор роли (rid), который можно найти в таблице ролей в базе данных.
Если вы хотите проверить роль с помощью rid 16, выполните:
источник
Вот фактический код из комментария, который упоминается в принятом ответе как лучшая практика
источник
Вы можете проверить роль пользователя с помощью print_r ($ user), и в результате вы получите что-то вроде этого
источник
чтобы проверить, есть ли у пользователя определенная роль:
источник
источник
Вышеуказанные ответы не сработали, не верный путь, я нашел этот пост и код должен быть `
// Проверяем, есть ли у $ user роль администратора. if (in_array ('administrator', array_values ($ user-> role))) {// Сделать что-то. }?> `
источник