render('index'); } /** * User login */ public function actionLogin() { if (!\Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } else { return $this->render('login', [ 'model' => $model, ]); } } /** * User logout */ public function actionLogout() { Yii::$app->user->logout(); return $this->goHome(); } /** * User signup */ public function actionSignup() { $user = new User(['scenario' => 'signup']); if ($user->load(Yii::$app->request->post())) { if ($user->save()) { $params = Yii::$app->params; Yii::$app->mail->compose('confirmEmail', ['user' => $user]) ->setFrom([$params['support.email'] => $params['support.name']]) ->setTo($user->email) ->setSubject('Complete registration with ' . Yii::$app->name) ->send(); Yii::$app->session->setFlash('user-signed-up'); return $this->refresh(); } } if (Yii::$app->session->hasFlash('user-signed-up')) { return $this->render('signedUp'); } return $this->render('signup', [ 'model' => $user, ]); } /** * Confirm email */ public function actionConfirmEmail($token) { $user = User::find()->emailConfirmationToken($token)->one(); if ($user!==null && $user->removeEmailConfirmationToken(true)) { Yii::$app->getUser()->login($user); return $this->goHome(); } return $this->render('emailConfirmationFailed'); } /** * Request password reset */ public function actionRequestPasswordReset() { $model = new PasswordResetRequestForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->sendEmail()) { Yii::$app->getSession()->setFlash('success', 'Check your email for further instructions.'); return $this->goHome(); } else { Yii::$app->getSession()->setFlash('error', 'Sorry, we are unable to reset password for email provided.'); } } return $this->render('requestPasswordResetToken', [ 'model' => $model, ]); } /** * Reset password */ public function actionResetPassword($token) { try { $model = new ResetPasswordForm($token); } catch (InvalidParamException $e) { throw new BadRequestHttpException($e->getMessage()); } if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) { Yii::$app->getSession()->setFlash('success', 'New password was saved.'); return $this->goHome(); } return $this->render('resetPassword', [ 'model' => $model, ]); } public function actionSearch() { } public function actionError() { if (($exception = Yii::$app->getErrorHandler()->exception) === null) { return ''; } if ($exception instanceof HttpException) { $code = $exception->statusCode; } else { $code = $exception->getCode(); } if ($exception instanceof Exception) { $name = $exception->getName(); } else { $name = $this->defaultName ?: Yii::t('yii', 'Error'); } if ($code) { $name .= " (#$code)"; } if ($exception instanceof UserException) { $message = $exception->getMessage(); } else { $message = $this->defaultMessage ?: Yii::t('yii', 'An internal server error occurred.'); } if (Yii::$app->getRequest()->getIsAjax()) { static::renderJson([], $code, $message); } else { return $this->render('error', [ 'name' => $name, 'message' => $message, 'exception' => $exception, ]); } } }