Отображение Роли текущего пользователя в Drupal 8.

Главные вкладки

Аватар пользователя Golum Golum 8 февраля 2018 в 21:42

Здравствуйте уважаемые форумчане.

Интересует такой вопрос:как мне узнать роль текущего пользователя?
В 7 версии Drupal можно было насколько я понял достать роль с помощью переменной $user,объявив её как глобальную и вытащив из нее роль $user->roles.
Но как мне вытащить роль в версии Drupal 8.4?
Там вроде как убрали переменную $user ,с классами я не очень знаком.
Хочу провести проверку роли на permission и не знаю как это сделать.
Буду благодарен за подсказку или объяснение )

Лучший ответ

Аватар пользователя ivnish ivnish 8 февраля 2018 в 21:54
1

Как то так

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

Комментарии

Аватар пользователя Golum Golum 8 февраля 2018 в 22:06

Выдает ошибку в этом коде.
Я как то не так проверяю ?
Пробовал добавить к extends currentUser но тоже не помогло.

<?php
/**
 * @file
 * Contains \Drupal\mymodule\Plugin\Block\MyBlock.
 */

 
namespace Drupal\mymodule\Plugin\Block;

use Drupal\Core\Block\BlockBase;

 
/**
 * Provides a 'My' Block
 *
 * @block(
 *   id = "my_block",
 *   admin_label = @Translation("Tips of the day"),
 *  
 * )
 */

class MyBlock extends BlockBase {
       
  /**
   * {@inheritdoc}
   */

  public function build() {
    $current_user = \Drupal::currentUser();
    $roles = $current_user->getRoles();
        if($roles -> hasPermission( "permission block" )) {
         
      return array(
        '#type' => 'markup',
        '#markup' => t('Working'),
        );
    }else{
          return array(
            '#type' => 'markup',
        '#markup' => t('Sorry,403.'),
          );
  }
       
  }
 }

Аватар пользователя Golum Golum 8 февраля 2018 в 22:40

В таком случае подскажите пожалуйста как мне правильно подключить класс User ,чтобы я мог использовать haspermission.