В настоящее время вошли в роли пользователя


18

Как получить в настоящий момент авторизованные роли пользователя в Drupal 8?

Например, в D7 мы имеем $GLOBALS['user']->roles;

Ответы:


31

Что-то вроде:

$current_user = \Drupal::currentUser();
$roles = $current_user->getRoles();

вернет массив как:

Array
(
  [0] => authenticated
  [1] => administrator
  [2] => some_other_role
)

где значения массива - это идентификаторы ролей (эквивалентные имени машины роли в Drupal 7). В ОО-коде используйте соответствующий механизм получения текущего пользователя из контейнера, например

$current_user = $container->get('current_user');

Хороший ответ, можете ли вы добавить код для $container?
Ученик

@Pupil, чтобы получить доступ к контейнеру в контексте OO, вы должны создать свой класс и использовать инъекцию зависимостей, чтобы вызвать его, как показано здесь, например, drupal.org/docs/8/api/services-and-dependency-injection/…
wranvaud

0

Чтобы получить текущую роль пользователя в Drupal 8 -

$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
   $role = $value;
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.