Closed xCEZAREx closed 8 years ago
isGuest должно обрабатываться корректно. Вот кусок кода из SignController::actionIn() if (!Yii::$app->user->isGuest || ($model->load(Yii::$app->request->post()) && $model->login())) { return $this->redirect(Yii::$app->user->getReturnUrl(['/admin']));
Или вы для своих пользователей другой класс модели используете?
Спасибо. Верно, использую другой класс. Решил писать свой компонент Consumer и в нем использовать базовые классы авторизации.
тогда переопределяйте метод модели LoginForm чтобы возвращал правильный класс в зависимости от необходимости: public function getUser() { if ($this->_user === false) { $this->_user = Admin::findByUsername($this->username); }
return $this->_user;
}
Или вообще используйте только свой класс пользователей, просто реализуйте в этом классе еще и функционал модели Admin. И потом просто в настройках укажите user[identityClass] = ваш_класс
хотя LoginForm::getUser() все равно править придется
Так если создать свой компонент Consumer и в нем использовать userIdentityClass = класс_User_из_advaced_шаблона и проводить авторизацию не через yii/vendor/easyii/Admin, а через класс_User_из_advaced_шаблона, то будет ли работать Yii::$app->consumer->isGuest и Yii::$app-> consumer->identity ?
Решил элегантно. Унаследовал yii\web\User как BaseUser и в конфиге передал свою модель User с дополнительным функционалом. Identity работает, правда не тестировал как это конфликтует с авторизацией админа.
Привет. Делаю кастомную авторизацию покупателя, но столкнулся с проблемой. После авторизации пользователя не срабатывает стандартный Yii::$app->user->isGuest, так как Yii::$app->user->identity возвращает AdminIdentity из модуля Easyii shop.
Как правильно залогинить пользователя на фронте?
Авторизацию сделал руками по аналогии с advanced шаблоном. Можно было бы сделать через таблицу админов, но не хочется их совмещать.