Spaces:
Runtime error
Runtime error
File size: 581 Bytes
91ca409 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from functools import wraps
from flask_jwt_extended import verify_jwt_in_request, get_jwt
from flask import jsonify
def roles_required(*roles):
def wrapper(fn):
@wraps(fn)
def decorator(*args, **kwargs):
verify_jwt_in_request()
claims = get_jwt()
user_roles = claims.get("roles", [])
if not any(role in roles for role in user_roles):
return jsonify(msg="Forbidden: insufficient permissions"), 403
return fn(*args, **kwargs)
return decorator
return wrapper
|