FIX: fixed login and admin requirements
This commit is contained in:
@@ -1,13 +1,24 @@
|
|||||||
from flask import redirect, url_for, request, g, session
|
from flask import redirect, url_for, request, g, session
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
import logging
|
import logging
|
||||||
|
from os import getenv
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
from database.database import Database
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
def logged_in_user():
|
def logged_in_user():
|
||||||
"""
|
"""
|
||||||
Validator to make sure a user is logged in.
|
Validator to make sure a user is logged in.
|
||||||
"""
|
"""
|
||||||
|
db = Database()
|
||||||
|
db.create_connection()
|
||||||
|
|
||||||
g.user = session.get("username", None)
|
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):
|
def login_required(view):
|
||||||
"""
|
"""
|
||||||
@@ -16,7 +27,7 @@ def login_required(view):
|
|||||||
@wraps(view)
|
@wraps(view)
|
||||||
def wrapped_view(*args, **kwargs):
|
def wrapped_view(*args, **kwargs):
|
||||||
if g.user is None:
|
if g.user is None:
|
||||||
return redirect(url_for("login", next=request.url))
|
return redirect(getenv("HOMEPAGE_URL"))
|
||||||
return view(*args, **kwargs)
|
return view(*args, **kwargs)
|
||||||
return wrapped_view
|
return wrapped_view
|
||||||
|
|
||||||
@@ -26,8 +37,8 @@ def admin_required(view):
|
|||||||
"""
|
"""
|
||||||
@wraps(view)
|
@wraps(view)
|
||||||
def wrapped_view(*args, **kwargs):
|
def wrapped_view(*args, **kwargs):
|
||||||
if g.admin != "admin":
|
if g.admin == 0:
|
||||||
return redirect(url_for("login", next=request.url))
|
return redirect(getenv("HOMEPAGE_URL"))
|
||||||
return view(*args, **kwargs)
|
return view(*args, **kwargs)
|
||||||
return wrapped_view
|
return wrapped_view
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user