22 lines
670 B
Python
22 lines
670 B
Python
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,))
|