FIX: fixed login and admin requirements

This commit is contained in:
white
2025-02-26 15:15:09 +00:00
parent cefd88f525
commit e69f799caa

View File

@@ -1,13 +1,24 @@
from flask import redirect, url_for, request, g, session
from functools import wraps
import logging
from os import getenv
from dotenv import load_dotenv
from database.database import Database
load_dotenv()
def logged_in_user():
"""
Validator to make sure a user is logged in.
"""
db = Database()
db.create_connection()
g.user = session.get("username", None)
g.admin = session.get("username", None)
g.admin = db.fetchone("""SELECT is_admin FROM users
WHERE username = ?;""",
(session.get("username"),)
)
def login_required(view):
"""
@@ -16,7 +27,7 @@ def login_required(view):
@wraps(view)
def wrapped_view(*args, **kwargs):
if g.user is None:
return redirect(url_for("login", next=request.url))
return redirect(getenv("HOMEPAGE_URL"))
return view(*args, **kwargs)
return wrapped_view
@@ -26,8 +37,8 @@ def admin_required(view):
"""
@wraps(view)
def wrapped_view(*args, **kwargs):
if g.admin != "admin":
return redirect(url_for("login", next=request.url))
if g.admin == 0:
return redirect(getenv("HOMEPAGE_URL"))
return view(*args, **kwargs)
return wrapped_view