diff options
Diffstat (limited to 'app/views')
-rw-r--r-- | app/views/admin.py | 6 | ||||
-rw-r--r-- | app/views/auth.py | 77 | ||||
-rw-r--r-- | app/views/error_pages.py | 25 | ||||
-rw-r--r-- | app/views/main.py | 17 |
4 files changed, 86 insertions, 39 deletions
diff --git a/app/views/admin.py b/app/views/admin.py index b971a1a..7891e50 100644 --- a/app/views/admin.py +++ b/app/views/admin.py @@ -1,5 +1,5 @@ from app import app, login_manager, db -from flask import render_template, flash,url_for, redirect +from flask import render_template, flash, url_for, redirect import flask_login from app.models import User @@ -8,6 +8,7 @@ from flask_admin.contrib.sqla import ModelView admin = Admin(app, name="Admin", template_mode="bootstrap4") + class ModelView(ModelView): def is_accessible(self): try: @@ -17,4 +18,5 @@ class ModelView(ModelView): except AttributeError: return False -admin.add_view(ModelView(User, db.session))
\ No newline at end of file + +admin.add_view(ModelView(User, db.session)) diff --git a/app/views/auth.py b/app/views/auth.py index d6f02b8..2833479 100644 --- a/app/views/auth.py +++ b/app/views/auth.py @@ -1,6 +1,6 @@ from app import app, db, models, login_manager, oauth -from app.forms.app_forms import UserSignUp, UserLogIn -from flask import render_template, flash,url_for, redirect, request +from app.forms.app_forms import UserSignUp, UserLogIn +from flask import render_template, flash, url_for, redirect, request from app.misc_func import flash_errors, send, send_async import flask_login from sqlalchemy.exc import IntegrityError @@ -9,10 +9,11 @@ from itsdangerous.exc import BadSignature ts = URLSafeSerializer(app.config["SECRET_KEY"]) -@app.route("/signup", methods=['GET', 'POST']) + +@app.route("/signup", methods=["GET", "POST"]) def register_user(): if request.method == "GET" and flask_login.current_user.is_authenticated: - return redirect(url_for("user_dashboard")) + return redirect(url_for("user_dashboard")) form = UserSignUp() if form.validate_on_submit(): form.email.data = form.email.data.lower() @@ -22,31 +23,38 @@ def register_user(): email=form.email.data, confirmation=False, password=form.password.data, - ) + ) db.session.add(user) try: db.session.commit() except IntegrityError: flash("Oops! An account with that email already exists") - return render_template("auth/signup.html",form=form) - + return render_template("auth/signup.html", form=form) + subject = "Confirm Your Email" - confirmation_token = ts.dumps(user.email,salt="email-confirm-key") - confirmation_url = url_for("confirm_email",confirmation_token=confirmation_token,_external=True) - body_html = render_template("misc/email_confirm.html",confirmation_url=confirmation_url) - body = render_template("misc/email_confirm.txt",confirmation_url=confirmation_url) + confirmation_token = ts.dumps(user.email, salt="email-confirm-key") + confirmation_url = url_for( + "confirm_email", confirmation_token=confirmation_token, _external=True + ) + body_html = render_template( + "misc/email_confirm.html", confirmation_url=confirmation_url + ) + body = render_template( + "misc/email_confirm.txt", confirmation_url=confirmation_url + ) send(user.email, subject, body, body_html) - + flash("Please confirm your email before signing in..") return redirect(url_for("signin_user")) flash_errors(form) - return render_template("auth/signup.html",form=form) + return render_template("auth/signup.html", form=form) -@app.route("/signin", methods=['GET', 'POST']) + +@app.route("/signin", methods=["GET", "POST"]) def signin_user(): if request.method == "GET" and flask_login.current_user.is_authenticated: - return redirect(url_for("user_dashboard")) + return redirect(url_for("user_dashboard")) form = UserLogIn() if form.validate_on_submit(): form.email.data = form.email.data.lower() @@ -66,7 +74,8 @@ def signin_user(): flash("Incorrect Email") else: flash_errors(form) - return render_template("auth/signin.html",form=form) + return render_template("auth/signin.html", form=form) + @app.route("/login/with/google") def login_with_google(): @@ -85,7 +94,8 @@ def login_with_google_auth(): last_name=g_user["family_name"], email=g_user["email"].lower(), confirmation=True, - login_type="google") + login_type="google", + ) db.session.add(user) try: db.session.commit() @@ -98,7 +108,9 @@ def login_with_google_auth(): flask_login.login_user(user) return redirect(url_for("user_dashboard")) else: - flash("An account already exists for this email. Please use your password to log in.") + flash( + "An account already exists for this email. Please use your password to log in." + ) return redirect(url_for("signin_user")) else: return render_template( @@ -106,15 +118,18 @@ def login_with_google_auth(): message="To use sign-in with Google, you need a verified e-mail.", ) -@app.route("/confirm", methods=["GET","POST"]) + +@app.route("/confirm", methods=["GET", "POST"]) def confirm_email(): confirmation_token = request.args.get("confirmation_token") try: - email = ts.loads(confirmation_token, salt="email-confirm-key",max_age=86400) + email = ts.loads(confirmation_token, salt="email-confirm-key", max_age=86400) except TypeError: - return render_template("message.html",message="Token not provided in URL Parameter") + return render_template( + "message.html", message="Token not provided in URL Parameter" + ) except BadSignature: - return render_template("message.html",message="Bad Token Provided") + return render_template("message.html", message="Bad Token Provided") user = models.User.query.filter_by(email=email).first() print(email) user.confirmation = True @@ -122,16 +137,26 @@ def confirm_email(): flash("Email Has Been Succesfully Verified, You May Log In") return redirect(url_for("signin_user")) + @app.route("/dashboard") @flask_login.login_required def user_dashboard(): - return render_template("dashboard.html",user=flask_login.current_user) + return render_template("dashboard.html", user=flask_login.current_user) + -@app.route('/logout') +@app.route("/logout") def logout(): flask_login.logout_user() - return render_template("message.html",message="You have been logged out.") + return render_template("message.html", message="You have been logged out.") + @login_manager.unauthorized_handler def unauthorized(): - return render_template("message.html",message="You need to be logged in to access this resource", code=401), 401 + return ( + render_template( + "message.html", + message="You need to be logged in to access this resource", + code=401, + ), + 401, + ) diff --git a/app/views/error_pages.py b/app/views/error_pages.py index 5d995fc..1f066cc 100644 --- a/app/views/error_pages.py +++ b/app/views/error_pages.py @@ -1,18 +1,35 @@ from app import app from flask import render_template + @app.route("/Simulate500") def simulate_500(): - return 500 + return 500 + @app.errorhandler(403) def page_forbidden(e): - return render_template("message.html",code=403,message="Forbidden. You shall not pass"), 403 + return ( + render_template( + "message.html", code=403, message="Forbidden. You shall not pass" + ), + 403, + ) + @app.errorhandler(404) def page_not_found(e): - return render_template('message.html',code=404,message="Whoops! Page Not Found"), 404 + return ( + render_template("message.html", code=404, message="Whoops! Page Not Found"), + 404, + ) + @app.errorhandler(500) def page_server_error(e): - return render_template("message.html",code=500,message="Server Could Not Process This."), 500
\ No newline at end of file + return ( + render_template( + "message.html", code=500, message="Server Could Not Process This." + ), + 500, + ) diff --git a/app/views/main.py b/app/views/main.py index 003a46f..85df723 100644 --- a/app/views/main.py +++ b/app/views/main.py @@ -3,17 +3,20 @@ from app.forms.app_forms import MyForm from flask import render_template, flash from app.views import auth, error_pages, admin from app.misc_func import flash_errors + theme = "original" + @app.route("/") @app.route("/index") def index(): - return render_template("index.html") + return render_template("index.html") + -@app.route("/ContactUs", methods=['GET', 'POST']) +@app.route("/ContactUs", methods=["GET", "POST"]) def contact_us(): - form = MyForm() - if form.validate_on_submit(): - return "Wuhu" - flash_errors(form) - return render_template("contact.html",form=form)
\ No newline at end of file + form = MyForm() + if form.validate_on_submit(): + return "Wuhu" + flash_errors(form) + return render_template("contact.html", form=form) |