Initial commit

This commit is contained in:
Peter Stockings
2026-02-22 22:53:22 +11:00
commit ccdb3d8dc7
26 changed files with 2238 additions and 0 deletions

21
app/auth.py Normal file
View File

@@ -0,0 +1,21 @@
from functools import wraps
from flask import session, redirect, url_for, request
from app.db import query_one
def login_required(f):
"""Decorator to require authentication."""
@wraps(f)
def decorated_function(*args, **kwargs):
if "user_id" not in session:
return redirect(url_for("auth.login", next=request.url))
return f(*args, **kwargs)
return decorated_function
def get_current_user():
"""Get the current logged-in user from the database."""
user_id = session.get("user_id")
if user_id is None:
return None
return query_one("SELECT * FROM users WHERE id = %s", (user_id,))