web-dev-qa-db-fra.com

Rôles d'utilisateur actuellement connectés

Comment obtenir les rôles de l'utilisateur actuellement connecté dans Drupal 8?

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

19
graceman9

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 l'ordinateur du rôle dans Drupal 7). Dans OO code, utilisez le mécanisme approprié pour obtenir le courant l'utilisateur du conteneur, p.ex.

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

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

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

Voici comment je le fais:

// Get actual user role.
$current_user_roles = \Drupal::currentUser()->getRoles();

// Check if user is not admin.
if (!in_array('administrator', $current_user_roles)) {

// Check if user is an admin.
if (in_array('administrator', $current_user_roles)) {
1
lucasvm1980