from functools import wraps from areas.roles.role_service import RoleService from flask_jwt_extended import verify_jwt_in_request from flask_jwt_extended import get_jwt from helpers import Unauthorized 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: raise Unauthorized("You need to have admin permissions.") return decorator return wrapper