Как получить роль пользователя в Yii2?
Как получить роль пользователя в Yii2?
Я искал и прочитал руководство по Yii2, но не нашел никакого решения.
8 ответов
Вы можете получить роли для пользователя с помощью функции getRolesByUser
Вы можете использовать это так
\Yii::$app->authManager->getRolesByUser($user_id);
Ты можешь использовать:
Yii::$app->authManager->getRolesByUser(Yii::$app->user->getId());
Я использую:
if (\Yii::$app->authManager-> getAssignment($role,$rule_id))
для фильтрации user id
а также role
в rbac, Подробнее о документации Yii2
Еще один пример, как получить роль пользователя:Yii::$app->getUser()->identity->role;
Это работает, если у вас есть столбец с именем "роль" в вашей пользовательской таблице.
Ты можешь использовать:
$user =[];
$userAssigned = Yii::$app->authManager->getAssignments(user_id);
foreach($userAssigned as $userAssign){
$user[] = $userAssign->roleName;
}
Хорошим и более наглядным решением будет установка констант всех ролей.
$userID = $user->getId();
array_keys(Yii::$app->authManager->getRolesByUser($userID))[0] == User::ROLE_NAME
Если вы используете модуль amnah / yii2-user, вы можете использовать это:
Yii::$app->user->identity->role->name
Это даст вам текущее имя пользователя
Вы можете получить роль пользователя с помощью команды create.
$roleModel = Yii::$app->db
->createCommand("Select * from auth_assignment where user_id='889'")
->queryOne();
echo $roleModel['item_name'];
Это будет роль пользователя в назначении авторизации. Теперь вы можете проверить это, если пользователь является администратором, редактором или участником.