Files
Journal/routes/auth_routes.py
SimolZimol 29cadb7fd3 modified: routes/auth_routes.py
modified:   routes/journal_routes.py
	modified:   static/css/style.css
	modified:   templates/base.html
	new file:   templates/datenschutz.html
	modified:   templates/future.html
	new file:   templates/impressum.html
2026-08-02 21:46:25 +02:00

48 lines
1.5 KiB
Python

"""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"))
@auth_bp.route("/impressum")
def impressum():
"""Öffentliche Impressum-Seite (gesetzlich Pflicht)."""
return render_template("impressum.html")
@auth_bp.route("/datenschutz")
def datenschutz():
"""Öffentliche Datenschutz-/GDPR-Seite."""
return render_template("datenschutz.html")