Funções de usuário atualmente logadas

18

Como obter as funções de usuário atualmente conectado no Drupal 8?

Por exemplo, em D7, temos $GLOBALS['user']->roles;

graceman9
fonte

Respostas:

31

Algo como:

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

retornará uma matriz como:

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

onde os valores da matriz são IDs da função (equivalente ao nome da máquina da função no Drupal 7). No código OO, use o mecanismo apropriado para obter o usuário atual do contêiner, por exemplo

$current_user = $container->get('current_user');
mpdonadio
fonte
Boa resposta, você pode adicionar o código $container?
Aluno
@Pupil, a fim de acessar o contêiner em um contexto OO você deve criar a sua injecção classe e uso dependência de chamá-lo, como mostrado aqui, por exemplo drupal.org/docs/8/api/services-and-dependency-injection/...
wranvaud