Код: Выделить всё
<?php
namespace app\controllers;
use app\models\User;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use app\models\LoginForm;
class SiteController extends Controller
{
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['logout'],
'rules' => [
[
'actions' => ['logout'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
],
];
}
public function actionIndex()
{
if(Yii::$app->user->isGuest){
return $this->redirect('/login');
}
return $this->render('index');
}
}
почему?
п.с. есть также контролле LoginController:
в нем нет намека на передаресация /site/login
Код: Выделить всё
<?php
namespace app\controllers;
use app\models\User;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
class LoginController extends Controller
{
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['@']
],
],
]
];
}
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
],
];
}
public function actionIndex()
{
$error_msg = null;
if(!Yii::$app->user->isGuest){
$this->redirect('/');
}
//Yii::$app->user->login(User::findOne(3),0);
if(Yii::$app->request->post()){
$username = Yii::$app->request->post('username');
$password = Yii::$app->request->post('password');
if($user = User::findOne(['username' => $username])){
if(Yii::$app->getSecurity()->validatePassword($password, $user->password_hash)){
if(Yii::$app->user->login($user)){
return $this->redirect('/');
} else {
die('login error');
}
}
$error_msg = "Login or Password is not correct";
}
}
return $this->render('index',[
'error_msg' => $error_msg,
]);
}
}