Funciones de usuario actualmente conectadas

18

¿Cómo obtener los roles del usuario actualmente conectado en Drupal 8?

Por ejemplo en D7 tenemos $GLOBALS['user']->roles;

graceman9
fuente

Respuestas:

31

Algo como:

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

devolverá una matriz como:

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

donde los valores de la matriz son ID de rol (equivalente al nombre de máquina del rol en Drupal 7). En el código OO, utilice el mecanismo apropiado para obtener el usuario actual del contenedor, p. Ej.

$current_user = $container->get('current_user');
mpdonadio
fuente
Buena respuesta, ¿puedes agregar el código $container?
Alumno
@Pupil para acceder al contenedor en un contexto OO, debe crear su clase y usar inyección de dependencia para llamarlo como se muestra aquí, por ejemplo drupal.org/docs/8/api/services-and-dependency-injection/…
wranvaud
0

Para obtener el rol de usuario actual en drupal 8:

$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
   $role = $value;
}
Wasim Khan
fuente