Здравствуйте уважаемые форумчане.
Интересует такой вопрос:как мне узнать роль текущего пользователя?
В 7 версии Drupal можно было насколько я понял достать роль с помощью переменной $user,объявив её как глобальную и вытащив из нее роль $user->roles.
Но как мне вытащить роль в версии Drupal 8.4?
Там вроде как убрали переменную $user ,с классами я не очень знаком.
Хочу провести проверку роли на permission и не знаю как это сделать.
Буду благодарен за подсказку или объяснение )
Комментарии
Как то так
$current_user = \Drupal::currentUser();
$roles = $current_user->getRoles();
Выдает ошибку в этом коде.
Я как то не так проверяю ?
Пробовал добавить к extends currentUser но тоже не помогло.
/**
* @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.'),
);
}
}
}
Блин,наверно просто нельзя вызвать hasPermission к классу currentUser?
Разумеется нельзя. $roles - это всего лишь массив с ролями текущего пользователя
В таком случае подскажите пожалуйста как мне правильно подключить класс User ,чтобы я мог использовать haspermission.