Ejemplo n.º 1
0
 /**
  * Logs in the user using the given username and password in the model.
  * @return boolean whether login is successful
  */
 public function save()
 {
     $user = new Users();
     $user->setAttributes($this->attributes);
     $user->setAttribute("password", BaseTool::ENPWD($this->password));
     if ($user->validate() && $user->save()) {
         $accountarray = array('user_id' => Yii::app()->db->getLastInsertID(), 'total' => 0, 'use_money' => 0, 'no_use_money' => 0, 'newworth' => 0);
         $newAccount = new Account();
         $newAccount->setAttributes($accountarray);
         $newAccount->save();
         //发送邮件
         $activecode = BaseTool::getActiveMailCode($this->username);
         $message = MailTemplet::getActiveEmail($this->username, $activecode);
         $mail = Yii::app()->Smtpmail;
         $mail->SetFrom(Yii::app()->params['adminEmail']);
         $mail->Subject = "好帮贷测试邮件";
         $mail->MsgHTML($message);
         $mail->AddAddress($this->email);
         if ($mail->Send()) {
             $user->updateAll(array("regtaken" => $activecode, "regativetime" => time() + 60 * 60), "username=:username", array(":username" => $this->username));
         }
         Yii::import("application.models.form.LoginForm", true);
         $loginform = new LoginForm();
         $loginarray = array('rememberMe' => false, 'username' => $this->username, 'password' => $this->password);
         $loginform->setAttributes($loginarray);
         if ($loginform->validate() && $loginform->login()) {
         }
         return true;
     } else {
         $usererror = $user->errors;
         $this->addError("username", current(current($usererror)));
         return false;
     }
 }
Ejemplo n.º 2
0
 /**
  * 根据不同的条件验证不同的用户
  */
 public function checkUser($data = array())
 {
     if (isset($data['phoneyezheng'])) {
         //手机认证
         //判断手机跟验证码是否正确
         ###########待完成##############
         //验证密码是否正确
         if ($this->validatePassword($data['password'], $this->password)) {
             return array("phone" => $data['phone'], "phone_status" => 1);
         } else {
             $this->addError("password", "密码不正确!");
         }
     } elseif (isset($data['email'])) {
         //邮箱的认证
         //验证邮箱
         if (!filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
             $this->addError("email", "邮箱格式不正确!");
             return $data;
         }
         //登录密码不正确
         if (!$this->validatePassword($data['password'], $this->password)) {
             $this->addError("email", "密码不正确!");
             return $data;
         }
         //验证邮箱重复
         if (Users::model()->count("email=:email AND email_status=1", array(":email" => $data['email'])) > 0) {
             $this->addError("email", "邮箱已经被占用!");
             return $data;
         }
         //发送激活邮件
         //发送邮件
         $activecode = BaseTool::getActiveMailCode($this->username);
         $message = MailTemplet::getActiveEmail($this->username, $activecode);
         $mail = Yii::app()->Smtpmail;
         $mail->SetFrom(Yii::app()->params['adminEmail']);
         $mail->Subject = "好帮贷测试邮件";
         $mail->MsgHTML($message);
         $mail->AddAddress($this->email);
         if ($mail->Send()) {
             $this->updateAll(array("regtaken" => $activecode, "regativetime" => time() + 60 * 60), "username=:username", array(":username" => $this->username));
             Yii::app()->user->setFlash('success', "恭喜,邮件激活成功!,请尽快激活您的邮箱");
             Yii::app()->user->setFlash('reurl', Yii::app()->request->urlReferrer);
             Yii::app()->request->redirect("/notice/success.html");
         } else {
             $this->addError("email", "激活邮箱发送失败,请重试!");
             return $data;
         }
     } elseif (isset($data['oldanswer'])) {
         if (empty($this->answer) && $data['answer'] != $data['oldanswer']) {
             $this->addError("password", "初始设置密保时,新答案应跟旧答案一样!");
             return $data;
         }
         if (!empty($this->answer) && $this->answer != $data['oldanswer']) {
             $this->addError("password", "旧答案错误!");
             return $data;
         }
         return array("answer" => $data['answer'], "question" => $data['question']);
     } elseif (isset($data['oldpassword'])) {
         if (!$this->validatePassword($data['oldpassword'], $this->password)) {
             $this->addError("password", "旧密码输入不正确!");
             return $data;
         }
         if ($data['password'] != $data['repassword']) {
             $this->addError("password", "两次密码不一致!");
             return $data;
         }
         if (strlen(trim($data['password'])) < 8) {
             $this->addError("password", "新密码最少要8位!");
             return $data;
         }
         return array("password" => BaseTool::ENPWD($data['password']));
     } elseif (isset($data['oldpaypassword'])) {
         if (empty($this->paypassword) && !$this->validatePassword($data['oldpaypassword'], $this->password)) {
             $this->addError("paypassword", "原始交易密码不正确!");
             return $data;
         }
         if (!empty($this->paypassword) && !$this->validatePassword($data['oldpaypassword'], $this->paypassword)) {
             $this->addError("paypassword", "原始交易密码不正确!");
             return $data;
         }
         if ($data['paypassword'] != $data['repaypassword']) {
             $this->addError("paypassword", "两次密码不一致!");
             return $data;
         }
         if (strlen(trim($data['paypassword'])) < 8) {
             $this->addError("paypassword", "新密码最少要8位!");
             return $data;
         }
         return array("paypassword" => BaseTool::ENPWD($data['paypassword']));
     } else {
         return $data;
     }
 }