* @copyright (c), Thread */ class LoginController extends BaseController { public $title = "Login"; public $defaultAction = 'index'; public $layout = "@app/layouts/user-register"; protected $model = SignInForm::class; /** * @return array */ public function behaviors() { return [ 'AccessControl' => [ 'class' => AccessControl::class, 'rules' => [ [ 'allow' => true, 'actions' => ['index', 'validate'], 'roles' => ['?'], ], [ 'allow' => true, 'roles' => ['@'], ], [ 'allow' => false, ], ], ], ]; } /** * @return string */ public function actionIndex() { /** * @var $module \frontend\modules\user\User */ $module = $this->module; if (!Yii::$app->getUser()->isGuest) { return $this->redirect($module->params['login']['redirect-if-guest']); } /** @var $model SignInForm */ $model = new $this->model; $model->setScenario('signIn'); $model->load(Yii::$app->getRequest()->post()); if(isset($model['rememberMe']) && $model['rememberMe'] == 'on'){ $model['rememberMe'] = 1; } else{ $model['rememberMe'] = 0; } if ($model->login()) { return $this->redirect($module->params['login']['redirect-after-login']); } else { return $this->render('index', [ 'model' => $model, ]); } } /** * Перевірка валідації моделі(-ей) * Має бути встановдений у моделі scenario 'backend' * @return mixed */ public function actionValidate() { /** @var Model $model */ $model = new $this->model; $model->setScenario('signIn'); $model->load(Yii::$app->getRequest()->post()); if (isset($model['rememberMe']) && $model['rememberMe'] == 'on') { $model['rememberMe'] = true; } else { $model['rememberMe'] = false; } Yii::$app->getResponse()->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } }