aboutsummaryrefslogtreecommitdiff
path: root/api/hierarchy.py
diff options
context:
space:
mode:
Diffstat (limited to 'api/hierarchy.py')
-rw-r--r--api/hierarchy.py32
1 files changed, 18 insertions, 14 deletions
diff --git a/api/hierarchy.py b/api/hierarchy.py
index 6844fe6..f080c45 100644
--- a/api/hierarchy.py
+++ b/api/hierarchy.py
@@ -4,24 +4,28 @@ from db import cursor
ranks = ["none", "user", "moderator", "admin", "bot"]
+
# @auth_required function decorator (use after @flask.Blueprint.route() decorator)
def auth_required(level):
- def decorator(func):
- def wrapper():
- token = request.cookies.get("token") or ""
- if not token: return "", 403
+ def decorator(func):
+ def wrapper():
+ token = request.cookies.get("token") or ""
+ if not token: return "", 403
+
+ user_id = token_login(token)
+ if not user_id: return "", 403
- user_id = token_login(token)
- if not user_id: return "", 403
+ user_rank_text = cursor.execute(
+ "select type from users where user_id = ?", [user_id]
+ ).fetchone()[0]
- user_rank_text = cursor.execute("select type from users where user_id = ?", [user_id]).fetchone()[0]
+ required_rank = ranks.index(level)
+ user_rank = ranks.index(user_rank_text)
+ if required_rank > user_rank: return "", 403
- required_rank = ranks.index(level)
- user_rank = ranks.index(user_rank_text)
- if required_rank > user_rank: return "", 403
+ return func(user_id)
- return func(user_id)
- wrapper.__name__ = func.__name__
- return wrapper
- return decorator
+ wrapper.__name__ = func.__name__
+ return wrapper
+ return decorator