Şu anda oturum açmış olan kullanıcının rolleri


18

Drupal 8'de şu anda oturum açmış olan kullanıcının rollerini nasıl alabilirim?

Örneğin D7'de $GLOBALS['user']->roles;

Yanıtlar:


31

Gibi bir şey:

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

şöyle bir dizi döndürür:

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

burada dizi değerleri rol kimlikleri (Drupal 7'deki rolün makine adına eşdeğerdir). OO kodunda, geçerli kullanıcıyı kaptan almak için uygun mekanizmayı kullanın, ör.

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

Güzel cevap, lütfen kodu ekleyebilir misiniz $container?
Öğrenci

@ Öğrenci, bir OO bağlamında kapsama erişmek için sınıfınızı oluşturmalı ve burada gösterildiği gibi çağırmak için bağımlılık enjeksiyonu kullanmalısınız, örneğin drupal.org/docs/8/api/services-and-dependency-injection/…
wranvaud

0

Mevcut kullanıcı rolünü drupal 8'de almak için -

$role = \Drupal::currentUser()->getRoles();
foreach ($role as $value) {
   $role = $value;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.