def user_admin_reset_password(self): """ Reset the password :returns string: The new password string """ try: id = request.form.get("id") user = User.get(id) if not user: raise ViewError("Invalid User") method_ = self.config_("LOGIN_RESET_PASSWORD_METHOD", "").upper() new_password = None if method_ == "TOKEN": token = user.set_temp_login() url = url_for("UserAccount:temp_login_token", token=token, _external=True) else: new_password = user.set_password(password=None, random=True) url = url_for("UserAccount:login", _external=True) mailer.send_template( "reset-password.txt", method_=method_, to=user.email, name=user.email, url=url, new_password=new_password, ) flash_success("Password Reset instruction is sent to email") except Exception as ex: flash_error("Error: %s " % ex.message) return redirect(url_for("UserAdmin:get", id=id))
def lost_password(self): self._login_enabled() logout_user() self.meta_(title="Lost Password") if request.method == "POST": email = request.form.get("email") user = User.get_by_email(email) if user: delivery = self.config_("MODULE_USER_ACCOUNT_RESET_PASSWORD_METHOD") new_password = None if delivery.upper() == "TOKEN": token = user.set_temp_login() url = url_for("UserAccount:reset_password", token=token, _external=True) else: new_password = user.set_password(password=None, random=True) url = url_for("UserAccount:login", _external=True) mailer.send_template( "reset-password.txt", method_=delivery, to=user.email, name=user.email, url=url, new_password=new_password, ) flash_success("A new password has been sent to '%s'" % email) else: flash_error("Invalid email address") return redirect(url_for(login_view)) else: return self.render_(view_template_=template_page % "lost_password")
def contact_page(self): if not self.config_("MAILER_URI") \ or not self.config_("MODULE_CONTACT_PAGE_EMAIL"): abort(500, "Mailer Error. Invalid [ MAILER_URI ] " "or [ MODULE_CONTACT_PAGE_EMAIL ] is missing or empty") contact_email = self.config_("MODULE_CONTACT_PAGE_EMAIL") if request.method == "POST": error_message = None email = request.form.get("email") subject = request.form.get("subject") message = request.form.get("message") name = request.form.get("name") if recaptcha.verify(): if not email or not subject or not message: error_message = "All fields are required" elif not utils.is_valid_email(email): error_message = "Invalid email address" if error_message: flash_error(error_message) else: mailer.send_template("contact-us.txt", to=contact_email, reply_to=email, mail_from=email, mail_subject=subject, mail_message=message, mail_name=name) flash_success("Message sent. Thank you!") else: flash_error("Security code is invalid") return redirect(url_for("ContactPage")) else: self.meta_(title="Contact Us") return dict(view_template_=template_page % "contact_page")