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];
 }
Beispiel #2
0
 /**
  * Finds user by [[email]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findByEmail($this->email);
     }
     return $this->_user;
 }
Beispiel #3
0
 /**
  * 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);
 }
Beispiel #4
0
 /**
  * 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;
 }
Beispiel #5
0
 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)]);
 }
Beispiel #6
0
 public function getUserOptions()
 {
     return ArrayHelper::map(User::find()->where(['status' => '1'])->andWhere(['NOT', '_id', Yii::$app->user->id])->orderBy('email')->all(), '_id', 'email');
 }
Beispiel #7
0
 public function getUser()
 {
     return $this->hasOne(User::className(), ['_id' => 'user_id']);
 }
Beispiel #8
0
 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();
 }
Beispiel #9
0
 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]);
     }
 }
Beispiel #10
0
 /**
  * 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.');
     }
 }
Beispiel #11
0
 public function getCreatorby()
 {
     return $this->hasOne(\app\modules\account\models\User::className(), ['_id' => 'creator']);
 }
Beispiel #12
0
 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']]);
 }
Beispiel #13
0
 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;
 }