Наткнулся на простой пост с реализацией простой админки. yii2 установлен advanced. Сделал все как описано, но, проблемы не прошли мимо. На выходе: если проверять статус по 10(STATUS_ACTIVE) - прекрасно логинит в bacend, если менять на 20(STATUS_ADMIN) - неверный логин или пароль! Мой код: commons\modelsUser.php
public function rules()
{
return [
['status', 'default', 'value' => self::STATUS_ADMIN],
['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED, self::STATUS_ADMIN]],
];
}
public static function isUserAdmin($username)
{
return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
}
common\models\LoginForm.php
public function loginAdmin()
{
if ($this->validate() && User::isUserAdmin($this->username)) {
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
} else {
return false;
}
}
backend\controllers\SiteController.php
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->loginAdmin()) {
return $this->goBack();
} else {
return $this->render('login', [
'model' => $model,
]);
}
}
Решение быть может не самое правильное, но если делаем все просто - сойдет! В классе User (common\models\User.php) есть функция:
public static function findByUsername($username)
{
return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
}
из-за вот этого параметра 'status' => self::STATUS_ACTIVE] наш код не мог пройти валидацию. Я просто его удалил.
Так же в этом контроллере backend\controllers\SiteController.php есть код при успешной авторизации:
return $this->goBack();
У меня он не работает, поэтому я заменил его на
return $this->render('index');
Вроде все нормально... Если кто-то знает как сделать лучше - отпишите пожалуйста, всегда рад новым знаниям!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть HTML код и таблица (category) из 15 brand и idКак грамотно вывести данные в теги li где li=сектор 1? Каждые 5 наименований относятся разным разделом
ЗдравствуйтеДелаю Flex проект на Flash Builder с php типом сервера
Всем приветтакая проблема я учу php и я придумал пример благодаря которому мой личный бизнес и мои знания php вырастут до новых высот ) Это будет...