web-dev-qa-db-fra.com

comment obtenir une liste de toutes les autorisations dont dispose un utilisateur?

si j'ai l'objet utilisateur actuel, comment puis-je obtenir une liste de toutes les autorisations qu'il a dans drupal 8 module personnalisé? Je ne veux pas vérifier une autorisation particulière qui serait $ current_user -> hasPermission ("permission_name").

Je veux obtenir la liste complète de ses autorisations.

merci

9
Diana

Pouvez-vous essayer l'extrait de code suivant:

$user = \Drupal::currentUser();
$user_roles = $user->getRoles();
$roles_permissions = user_role_permissions($user_roles);

Cela vous donnera des autorisations regroupées par rôles. Mais très probablement, vous les voulez dans un seul tableau.

Vous pouvez donc utiliser ce

$final_array = array();
foreach ($roles_permissions as $role_key => $permissions) {
  foreach ($permissions as $permission) {
    $final_array[] = $permission;
  }
}

Si vous souhaitez charger un utilisateur différent de l'utilisateur actuellement connecté, vous pouvez utiliser

$some_user = \Drupal\user\Entity\User::load(123);

Où 123 représente l'ID utilisateur. Pour plus d'informations:

https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Entity.php/function/Entity%3A%3Aload/8.2.x

Meilleures salutations,

Oleg

11
Oleg Videnov