/** * 修改密码处理. * * @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(); }
/** * 忘记密码处理. * * @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(); }