Подтвердить что ты не робот

Как получить текущую роль пользователя в Drupal 7?

Как получить текущую роль пользователя в Drupal 7? Вы знаете простой способ достичь этого? Существуют ли для этого функции ядра drupal?

4b9b3361

Ответ 1

Вы можете получить доступ к ролям пользователей, просто используя этот фрагмент PHP:

<?php $GLOBALS['user']->roles; ?>

Ответ 2

$user- > role - это массив ролей, принадлежащих пользователю, указанному идентификатором роли, значением является строка ролей. Поэтому, если вы хотите проверить, имеет ли пользователь роль аутентифицированного пользователя, ваш фрагмент кода будет выглядеть примерно так (не обязательно самый оптимизированный подход, in_array - довольно дорогостоящая функция):

global $user;

if (in_array('authenticated user', $user->roles)) {
     //do stuff here
}

Обратите внимание, что in_array также может принимать массив как "игла" (аргумент # 1), чтобы вы могли проверять несколько вариантов ролей:

in_array(array('authenticated user', 'anonymous user'), $user->roles);

Ответ 3

Я нашел интересное решение для проверки нескольких ролей пользователя:

global $user;
$check = array_intersect(array('moderator', 'administrator'), array_values($user->roles));
if (empty($check) ? FALSE : TRUE) {
    // is admin
} else {
    // is not admin
}

Ответ 4

//Загрузите зарегистрированного пользователя.

 global $user;
 print_r($user->roles);//this gives you current user roles

//чтобы проверить, является ли он администратором, вы можете сделать это

  if (in_array('administrator', $user->roles)) {
            // do some stuff
            $form['field_end_date']['#disabled'] = FALSE;
    }