* @copyright (c), Thread */ class RegisterController extends BaseController { protected $model = RegisterForm::class; public $title = "Register"; public $defaultAction = 'index'; public $layout = "@app/layouts/user-register"; /** * @return array */ public function behaviors() { return [ 'AccessControl' => [ 'class' => AccessControl::class, 'rules' => [ [ 'allow' => true, 'actions' => ['index', 'validate'], 'roles' => ['?'], ], [ 'allow' => false, ], ], ], ]; } /** * * @return string */ public function actionIndex() { if (!Yii::$app->getUser()->isGuest) { return $this->redirect(['/']); } /** @var $model RegisterForm */ $model = new $this->model; $model->setScenario('register'); if ($model->load(Yii::$app->getRequest()->post()) && $model->validate()) { $status = $model->addUser(); $model->setScenario('signIn'); if ($status){ Yii::$app->getSession()->addFlash('login', Yii::t('user', 'add new members')); } return $this->redirect(['/']); /*if ($status === true && $model->getAutoLoginAfterRegister() === true && $model->login()) { }*/ /*if ($status === true) { return $this->redirect(['/user/login/index']); }*/ } else { $model->getErrors(); } return $this->render('index', [ 'model' => $model, 'module' => $this->module, ]); } /** * * @return string */ public function actionValidate() { if (!\Yii::$app->getUser()->getIsGuest()) { return $this->goHome(); } /** @var RegisterForm $model */ $model = new $this->model; $model->setScenario('register'); if (Yii::$app->getRequest()->isAjax && $model->load(Yii::$app->getRequest()->post())) { Yii::$app->getResponse()->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } } }