Files
lapp/auth.py
T
2026-01-01 21:07:34 +01:00

39 lines
1.3 KiB
Python

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"))