web-dev-qa-db-ja.com

現在ログインしているユーザーの役割

Drupal 8)で現在ログインしているユーザーのロールを取得する方法

たとえば、D7には$GLOBALS['user']->roles;

19
graceman9

何かのようなもの:

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

次のような配列を返します:

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

ここで、配列の値はロールIDです(Drupal 7のロールのマシン名に相当)。OOコードでは、適切なメカニズムを使用して現在のコンテナからのユーザー、例えば

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

drupal 8で現在のユーザーロールを取得するには-

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

これは私がそれをする方法です:

// 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