Rôles d'utilisateur actuellement connectés

18

Comment obtenir les rôles d'utilisateurs actuellement connectés dans Drupal 8?

Par exemple, en D7, nous avons $GLOBALS['user']->roles;

graceman9
la source

Réponses:

31

Quelque chose comme:

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

renverra un tableau comme:

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

où les valeurs du tableau sont des ID de rôle (équivalent au nom de la machine du rôle dans Drupal 7). Dans le code OO, utilisez le mécanisme approprié pour obtenir l'utilisateur actuel du conteneur, par exemple

$current_user = $container->get('current_user');
mpdonadio
la source
Belle réponse, pouvez-vous s'il vous plaît ajouter le code pour $container?
Elève
@Pupil afin d'accéder au conteneur dans un contexte OO, vous devez créer votre classe et utiliser l'injection de dépendance pour l'appeler comme indiqué ici, par exemple drupal.org/docs/8/api/services-and-dependency-injection/…
wranvaud
0

Pour obtenir le rôle d'utilisateur actuel dans drupal 8 -

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