немного передала actionLogin() в backend (Yii2 advanced шаблон)
суть: организовать доступ только для админов
пояснение: после того как юзер залогинился проверяем его статус и уровень доступа для админки. если все гуд, пропускаем, если нет, то делам logout
вопрос: этого достаточно для безопасности? или есть другие варианты?
сам экшен
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
$user_id = Yii::$app->user->identity->getId();
if (User::findIdentityAdmin($user_id)) {
return $this->goBack();
} else {
Yii::$app->user->logout();
throw new ForbiddenHttpException('Доступ запрещен.');
}
} else {
return $this->render('index', [
'model' => $model,
]);
}
}
модель user
const STATUS_ACTIVE = 10;
const ROLE_ADMIN = 10;
public static function findIdentityAdmin($id)
{
return static::findOne(['id' => $id, 'role' => self::ROLE_ADMIN, 'status' => self::STATUS_ACTIVE]);
}