from flask import Blueprint, render_template, request, redirect, url_for, flash from flask_login import login_user, logout_user, login_required, current_user from models import db from models import User from log import Log auth_bp = Blueprint("auth", __name__) #. @auth_bp.route("/", methods=["GET", "POST"]) @auth_bp.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": user = User.query.filter_by(name=request.form["name"]).first() if user and user.check_password(request.form["password"]): if not user.is_approved: return render_template("pending.html") login_user(user) return redirect(url_for("lists.home")) flash("Invalid credentials") Log.info(f"Authorization failure for user '{request.form["name"]}' ") return render_template("login.html") @auth_bp.route("/register", methods=["GET", "POST"]) def register(): if request.method == "POST": user = User(name=request.form["name"]) user.set_password(request.form["password"]) db.session.add(user) db.session.commit() return render_template("pending.html") return render_template("register.html") @auth_bp.route("/logout") @login_required def logout(): logout_user() return redirect(url_for("auth.login"))