Пример #1
0
 /**
  * 修改密码处理.
  *
  * @access pubic
  * @return void
  */
 public function changePwdAction()
 {
     $userName = $this->getLoginedUserInfo('userName');
     $oldPwd = I('post.oldpwd', '');
     $newPwd = I('post.newpwd', '');
     $verifyNewPwd = I('post.verifyNewpwd', '');
     // 确认新密码.
     $data = ['userName' => $userName, 'userOldPasswd' => $oldPwd, 'userNewPasswd' => $newPwd, 'verifyNewPwd' => $verifyNewPwd];
     $modelUser = new UserModel();
     // 校验用户名和密码规则.
     if (!$modelUser->validate($modelUser->ruleChangePwd)->create($data)) {
         $this->setAjaxData(Message::FAILED, $modelUser->getError())->myAjaxReturn();
     }
     // 校验旧密码.
     $res = $modelUser->checkLogin($userName, $this->encryptMyPwd($oldPwd));
     if (FALSE === $res) {
         $this->setAjaxData(Message::FAILED, '旧密码错误')->myAjaxReturn();
     }
     // 旧密码验证通过, 重置新密码.
     $res = $modelUser->resetPwd($userName, $this->encryptMyPwd($newPwd));
     if ($res) {
         $result = $this->_logOff();
         // 修改密码后退出登录状态.
         $this->setAjaxData(Message::SUCCESS, '修改密码成功', $result)->myAjaxReturn();
     }
     $this->setAjaxData(Message::SUCCESS, '修改密码失败')->myAjaxReturn();
 }
Пример #2
0
 /**
  * 忘记密码处理.
  * 
  * @access public
  * @return void
  */
 public function forgotPwdAction()
 {
     $userName = I('post.username', '');
     $userEmail = I('post.useremail', '');
     $code = I('post.code', '');
     $userPwd = I('post.userpass', '');
     // 校验用户名与邮箱是否匹配.
     $res = $this->_checkForgotUserAndEmail($userName, $userEmail);
     if (9 !== $res['status']) {
         $this->setAjaxData(Message::USERNAME_OR_EMAIL_NOT_MATCH, Message::get(Message::USERNAME_OR_EMAIL_NOT_MATCH));
     }
     // 校验验证码是否正确.
     $res = $this->_checkEmailCode($userEmail, $code);
     if (9 !== $res['status']) {
         $this->setAjaxData(Message::VCODE_INVALID, $res['msg'])->myAjaxReturn();
     }
     // 校验密码格式是否正确.
     $modelUser = new UserModel();
     $res = $modelUser->validate($modelUser->ruleForgotPwdPwdItem)->create(['userPasswd' => $userPwd]);
     if (!$res) {
         $this->setAjaxData(Message::FAILED, $modelUser->getError())->myAjaxReturn();
     }
     // 都验证通过了, 进入重置密码.
     if ($modelUser->resetPwd($userName, $this->encryptMyPwd($userPwd))) {
         // 重置密码成功, 设置为登录状态.
         $loginUserInfo = $modelUser->checkLogin($userName, $this->encryptMyPwd($userPwd));
         $result = $this->_loginSuccess($loginUserInfo);
         $this->setAjaxData(Message::SUCCESS, '重置密码成功', $result)->myAjaxReturn();
     }
     $this->setAjaxData(Message::FAILED, '重置密码失败')->myAjaxReturn();
 }