def contact_page(self): # Email to email_to = kwargs.pop("email_to", self.get_config("APPLICATION_CONTACT_EMAIL", None)) if mailer.validated is not True: abort("MailerMisconfiguredError") elif not email_to: abort("ContactPageMissingEmailToError") if request.method == "POST": email = request.form.get("email") subject = request.form.get("subject") message = request.form.get("message") name = request.form.get("name") flash_message = "Message sent. Thank you!" flash_type = "success" if recaptcha.verify(): if not email or not subject or not message: flash_message = "All fields are required" flash_type = "error" elif not utils.is_valid_email(email): flash_message = "Invalid email address" flash_type = "error" else: try: mailer.send_template("contact-us.txt", to=email_to, reply_to=email, mail_from=email, mail_subject=subject, mail_message=message, mail_name=name) except Exception as ex: abort("MailerMisconfiguredError") else: flash_message = "Security code is invalid" flash_type = "error" flash(flash_message, flash_type) return redirect(url_for(return_to)) self.meta_tags(title="Contact Us") return {}
def signup(self): """ For Email Signup :return: """ self._login_enabled() self._signup_enabled() self.meta_tags(title="Signup") if request.method == "POST": # reCaptcha if not recaptcha.verify(): flash("Invalid Security code", "error") return redirect(url_for(endpoint_namespace % "signup", next=request.form.get("next"))) try: name = request.form.get("name") email = request.form.get("email") password = request.form.get("password") password2 = request.form.get("password2") profile_image_url = request.form.get("profile_image_url", None) if not name: raise UserError("Name is required") elif not utils.is_valid_email(email): raise UserError("Invalid email address '%s'" % email) elif not password.strip() or password.strip() != password2.strip(): raise UserError("Passwords don't match") elif not utils.is_valid_password(password): raise UserError("Invalid password") else: new_account = User.new(email=email, password=password.strip(), first_name=name, profile_image_url=profile_image_url, signup_method="email") self.login_user(new_account) return redirect(request.form.get("next") or url_for(on_signin_view)) except ApplicationError as ex: flash(ex.message, "error") return redirect(url_for(endpoint_namespace % "signup", next=request.form.get("next"))) logout_user() return dict(login_url_next=request.args.get("next", ""))