Files
Journal/routes/auth_routes.py
SimolZimol 0e7efe4b74 new file: .env.example
new file:   .gitignore
	new file:   Dockerfile
	new file:   README.md
	new file:   app.py
	new file:   auth.py
	new file:   config.py
	new file:   db.py
	new file:   db_helpers.py
	new file:   docker-compose.yml
	new file:   requirements.txt
	new file:   routes/__init__.py
	new file:   routes/admin_routes.py
	new file:   routes/auth_routes.py
	new file:   routes/journal_routes.py
	new file:   static/css/style.css
	new file:   static/js/main.js
	new file:   templates/admin/dashboard.html
	new file:   templates/admin/users.html
	new file:   templates/base.html
	new file:   templates/day.html
	new file:   templates/future.html
	new file:   templates/index.html
	new file:   templates/login.html
	new file:   templates/week.html
2026-08-02 20:41:24 +02:00

36 lines
1.2 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"))