yii2-admin проверить роль пользователя

У меня есть роль Creator, и я хочу знать, как я могу проверить, назначена ли пользователю, вошедшему в систему, роль Creator.

Я создал функцию в своем классе User как:

public function getIsCreator(){
     $role = Yii::$app->authManager->getRole('Creator')->name;
     $rolesById = Yii::$app->authManager->getRolesByUser($this->id);

     return in_array($role, $rolesById);
}

Может ли кто-нибудь сказать мне, где я ошибаюсь? Поскольку приведенный выше код не проверяется должным образом.


person Abhimanyu Saharan    schedule 22.01.2015    source источник
comment
var_dump ваши ценности и посмотрите, что у вас там есть, разве это не очевидно?   -  person u_mulder    schedule 22.01.2015
comment
Пробовал. Ничего не приходит.   -  person Abhimanyu Saharan    schedule 22.01.2015
comment
Как вы это используете? Люди иногда путают личность пользователя с моделью пользователя.   -  person Mihai P.    schedule 23.01.2015
comment
Также, если это связано с другим вопросом, вам лучше сделать это, как я ответил, или с помощью фильтров.   -  person Mihai P.    schedule 23.01.2015
comment
пожалуйста, скажите мне: вы используете yii2 basic или yii2 advanced? если вы ответите на этот вопрос, я могу дать вам лучший ответ.   -  person moein kh    schedule 25.06.2015
comment
@moeinkh Я использую свой собственный шаблон. Я не использую ни базовые, ни расширенные шаблоны   -  person Abhimanyu Saharan    schedule 27.06.2015
comment
вы должны знать, что для использования библиотеки authManager для создания роли вы должны использовать расширенный yii2, потому что в yii2 advanced у вас есть готовая таблица, которая автоматически сохраняет и вставляет вашу роль, если вы хотите, я могу сказать, как добавить роль и как использовать эту роль на вашем контроллере page n advanced yii2 с наилучшими пожеланиями   -  person moein kh    schedule 26.07.2015


Ответы (1)


Чтобы проверить, имеет ли пользователь данную роль или нет, вы можете использовать эту функцию:

public function hasRole($roleName, $userId) {
    $authManager = \Yii::$app->getAuthManager();
    return $authManager->getAssignment($roleName, $userId) ? true : false;
}
person Akmal    schedule 19.07.2017