public function actionRegisterAjax() { Yii::$app->response->format = 'json'; $model = new User(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return ['status' => 1]; } return ['status' => 0]; }
/** * Finds user by [[email]] * * @return User|null */ public function getUser() { if ($this->_user === false) { $this->_user = User::findByEmail($this->email); } return $this->_user; }
/** * Creates a form model given a token. * * @param string $token * @param array $config name-value pairs that will be used to initialize the object properties * @throws \yii\base\InvalidParamException if token is empty or not valid */ public function __construct($token, $config = []) { if (empty($token) || !is_string($token)) { throw new NotFoundHttpException('The requested page does not exist.'); } $this->_user = User::findByPasswordResetToken($token); if (!$this->_user) { throw new NotFoundHttpException('The requested page does not exist.'); } parent::__construct($config); }
/** * Sends an email with a link, for resetting the password. * * @return boolean whether the email was send */ public function sendEmail() { /* @var $user User */ $user = User::findOne(['status' => User::STATUS_ACTIVE, 'email' => $this->email]); if ($user) { if (!User::isPasswordResetTokenValid($user->password_reset_token)) { $user->generatePasswordResetToken(); } if ($user->save()) { $mailer = \Yii::$app->mailer; $mailer->viewPath = '@app/modules/account/mail'; return $mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user])->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name])->setTo($this->email)->setSubject('Password reset for ' . \Yii::$app->name)->send(); } } return false; }
public function actionSuccess() { /* @var $user \app\modules\account\models\User */ $auth = Yii::$app->session->get('user.auth'); Yii::$app->session->remove('user.auth'); if (empty($auth)) { return $this->goHome(); } $user = User::findByOpenId($auth['uid'], $auth['provider']); if ($user !== null) { Yii::$app->user->login($user); return $this->goHome(); } var_dump($auth); // Đăng ký account //return $this->redirect(['register', 'oauth' => $this->_encrypt($auth)]); }
public function getUserOptions() { return ArrayHelper::map(User::find()->where(['status' => '1'])->andWhere(['NOT', '_id', Yii::$app->user->id])->orderBy('email')->all(), '_id', 'email'); }
public function getUser() { return $this->hasOne(User::className(), ['_id' => 'user_id']); }
public function actionOauthSuccess() { /* @var $modelUser \app\modules\account\models\User */ $auth = Yii::$app->session->get('user.auth'); Yii::$app->session->remove('user.auth'); if (empty($auth)) { return $this->goHome(); } // Đã đăng ký OAuth $modelUserOauth = User::findByOpenId($auth['uid'], $auth['provider']); if ($modelUserOauth !== null) { if (($modelUser = User::findByEmail($modelUserOauth->email)) !== null) { Yii::$app->user->login($modelUser); return $this->goHome(); } } // Chưa đăng ký OAuth -> Kiểm tra email tồn tại hay chưa if ($auth['email'] != '') { $modelUserByEmail = User::findByEmail($auth['email']); if ($modelUserByEmail != null) { if (empty($modelUserByEmail->display_name)) { $modelUserByEmail->display_name = $auth['name']; } if (empty($modelUserByEmail->first_name)) { $modelUserByEmail->first_name = $auth['firstname']; } if (empty($modelUserByEmail->last_name)) { $modelUserByEmail->last_name = $auth['lastname']; } $modelUserByEmail->openids = [$auth['provider'] => $auth['uid']]; $modelUserByEmail->save(); Yii::$app->user->login($modelUserByEmail); return $this->goHome(); } } // // Chuyen sang trang dang ky account // return $this->redirect(['/account/frontend/registration/register', 'oauth' => StringHelper::encrypt($auth)]); // Đăng ký tự động user mới (1 vai truong hop thay ko on lam) $model = new User(); $model->email = $auth['email']; $model->display_name = $auth['name']; $model->first_name = $auth['firstname']; $model->last_name = $auth['lastname']; $model->openids = [$auth['provider'] => $auth['uid']]; $model->status = User::STATUS_ACTIVE; if ($model->save()) { Yii::$app->user->login($model); } return $this->goHome(); }
public function actionRegister() { $isAjax = Yii::$app->request->get('ajax', '0'); $model = new User(); $message = []; $extraModel = new \app\modules\account\models\UserExtra(); $jobModel = new \app\modules\account\models\UserJob(); $jobModel->type = Yii::$app->request->get('type', 'recruiter'); if ($model->load(Yii::$app->request->post()) and $model->validate() and $modelAdditionBlocks = \app\helpers\LetHelper::saveAdditionBlocks($model)) { $model->status = User::STATUS_ACTIVE; if ($model->save()) { if (is_array($modelAdditionBlocks)) { foreach ($modelAdditionBlocks as $modelAdditionBlock) { $modelAdditionBlock->_id = $model->_id; $modelAdditionBlock->save(); } } $message = ['message' => 'Đăng ký tài khoản thành công']; if (!$isAjax) { $this->redirect($this->goBack()); } } } else { $message = ['message' => $model->getErrors()]; } if ($isAjax) { echo json_encode($message); } else { Yii::$app->view->title = Yii::t($this->module->id, 'Register'); Yii::$app->view->params['breadcrumbs'][] = Yii::$app->view->title; $renderView = $jobModel->type == 'recruiter' ? 'register-recruiter' : 'register-seeker'; return $this->render($renderView, ['model' => $model, 'extraModel' => $extraModel, 'jobModel' => $jobModel]); } }
/** * Finds the model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $id * @return the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = User::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function getCreatorby() { return $this->hasOne(\app\modules\account\models\User::className(), ['_id' => 'creator']); }
public function scenarios() { return array_merge(parent::scenarios(), ['register_seeker' => ['email', 'password'], 'register_recruiter' => ['email', 'password', 'first_name', 'last_name', 'phone'], 'register_employer' => ['email', 'password', 'first_name', 'last_name', 'phone'], 'edit_recruiter' => ['email', 'first_name', 'last_name', 'phone']]); }
public function actionUserList($q = null) { Yii::$app->response->format = Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { $q = filter_var($q, FILTER_SANITIZE_SPECIAL_CHARS); $query = User::find(); $query->where(['status' => '1']); $query->andWhere(['NOT', '_id', Yii::$app->user->id]); $query->andWhere(['LIKE', 'email', $q]); $query->orderBy('email'); $query->limit(100); $data = []; if (($models = $query->all()) != null) { foreach ($models as $model) { $data[] = ['id' => $model->primaryKey, 'text' => "{$model->display_name} ({$model->email})"]; } } $out['results'] = $data; } return $out; }