def post(self): token = self.get_request("Login[token]", None) newPass = self.get_request("Login[pass]", "") if token == "" or newPass == "" or len(newPass) < 4: self.print_result(False, "Incorrect parameters") return user = User().getByResetToken(token, False) if user: # found it # send email user.user_pass = user.getEncodeStr(newPass) p = dict( newPass=newPass, login_user=user.user_login, admin_email=pyCache.WebOptions['admin_email'], website_url=self.webroot_url("", True) ) msg = self.render_string("email/pass_has_changed.html", **p) subject = "[" + self.web_title() + "] Password Has Change" user.user_reset_token = "" user.reset_expired = 0 if user.update(): qm = SingleMail.get_instance() qm.send_email(user.user_email, subject, msg, 'html') self.print_result(True, "Done") else: self.print_result(False, "Failed to Update DB") else: # find failed self.print_result(False, "Can not find any record via this Email")
def post(self): email = self.get_request("Login[email]", None) validcode = self.get_request("Login[validcode]", "") if not pyUtility.isEmail(email): self.print_result(False, "The Format of Email is incorrect!!") return if "validcode" in self.session: if validcode != self.session['validcode']: self.print_result(False, "ValidCode is incorrect!!") return else: self.print_result(False, "ValidCode is incorrect!!") return if not email or email is None: self.print_result(False, "Email Is Empty!") return user = User().getByEmail(email, False) if user: # found it # send email token = hashlib.md5(email + str(random.randint(1000, 9999))).hexdigest() p = dict( login_user=user.user_login, reset_token=token, admin_email=pyCache.WebOptions['admin_email'], website_url=self.webroot_url("", True) ) msg = self.render_string("email/pass_reset.html", **p) subject = "[" + self.web_title() + "] Password Update" user.user_reset_token = token user.reset_expired = int(time.time()) + 60 * 60 * 2 # expired time: 2 hours if user.update(): qm = SingleMail.get_instance() qm.send_email(email, subject, msg, 'html') self.print_result(True, "Done") else: self.print_result(False, "Failed to Update DB") else: # find failed self.print_result(False, "Can not find any record via this Email")