Comment obtenir les rôles de l'utilisateur actuellement connecté dans Drupal 8?
Par exemple, en D7, nous avons $GLOBALS['user']->roles;
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');
Pour obtenir le rôle d'utilisateur actuel dans drupal 8 -
$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
$role = $value;
}
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)) {