add permission layer for admins for backend API
This commit is contained in:
parent
62187e0b29
commit
907e0ecaab
4 changed files with 33 additions and 1 deletions
24
helpers/auth_guard.py
Normal file
24
helpers/auth_guard.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
from functools import wraps
|
||||
|
||||
from flask import jsonify
|
||||
from areas.roles.role_service import RoleService
|
||||
|
||||
from flask_jwt_extended import verify_jwt_in_request
|
||||
from flask_jwt_extended import get_jwt
|
||||
|
||||
def admin_required():
|
||||
def wrapper(fn):
|
||||
@wraps(fn)
|
||||
def decorator(*args, **kwargs):
|
||||
verify_jwt_in_request()
|
||||
claims = get_jwt()
|
||||
userId = claims["user_id"]
|
||||
isAdmin = RoleService.is_user_admin(userId)
|
||||
if isAdmin:
|
||||
return fn(*args, **kwargs)
|
||||
else:
|
||||
return jsonify(msg="Admins only!"), 403
|
||||
|
||||
return decorator
|
||||
|
||||
return wrapper
|
||||
Reference in a new issue