Ejemplo n.º 1
0
    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")
Ejemplo n.º 2
0
    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")