Наразі увійшли в ролі користувача


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). У коді OO використовуйте відповідний механізм отримання поточного користувача з контейнера, наприклад

$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.