"""Auth-Routen: Login und Logout.""" from flask import Blueprint, render_template, request, redirect, url_for, session, flash from auth import verify_password from db_helpers import get_user_by_username auth_bp = Blueprint("auth", __name__) @auth_bp.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": username = request.form.get("username", "").strip() password = request.form.get("password", "") user = get_user_by_username(username) if user and verify_password(password, user["salt"], user["password_hash"]): session.clear() session["user_id"] = user["id"] session["username"] = user["username"] session["is_admin"] = bool(user["is_admin"]) flash(f"Willkommen, {user['username']}!", "success") if user["is_admin"]: return redirect(url_for("admin.dashboard")) return redirect(url_for("journal.index")) flash("Ungültiger Benutzername oder Passwort.", "danger") return render_template("login.html") @auth_bp.route("/logout", methods=["POST"]) def logout(): session.clear() flash("Du wurdest abgemeldet.", "info") return redirect(url_for("auth.login"))