Derzeit angemeldete Benutzerrollen

18

Wie erhalte ich die aktuell angemeldeten Benutzerrollen in Drupal 8?

Zum Beispiel in D7 haben wir $GLOBALS['user']->roles;

graceman9
quelle

Antworten:

31

Etwas wie:

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

Gibt ein Array wie folgt zurück:

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

Dabei sind die Array-Werte Rollen-IDs (entspricht dem Computernamen der Rolle in Drupal 7). Verwenden Sie im OO-Code den entsprechenden Mechanismus, um den aktuellen Benutzer aus dem Container abzurufen, z

$current_user = $container->get('current_user');
mpdonadio
quelle
Schöne Antwort, können Sie bitte den Code für hinzufügen $container?
Schüler
@Pupil Um in einem OO-Kontext auf den Container zuzugreifen, sollten Sie Ihre Klasse erstellen und mithilfe von Dependency Injection wie hier gezeigt aufrufen, z. B. drupal.org/docs/8/api/services-and-dependency-injection/…
wranvaud