diff --git a/backend/app/utils.py b/backend/app/utils.py deleted file mode 100755 index d8b483d8..00000000 --- a/backend/app/utils.py +++ /dev/null @@ -1,33 +0,0 @@ -from functools import wraps -from datetime import datetime -from bson import ObjectId -from quart import jsonify -from app.auth.quart_jwt import get_jwt_identity -from app.models.user import User - - -def make_serializable(obj): - """Recursively convert MongoDB documents to JSON-serializable types.""" - if isinstance(obj, dict): - return {k: make_serializable(v) for k, v in obj.items()} - elif isinstance(obj, list): - return [make_serializable(item) for item in obj] - elif isinstance(obj, ObjectId): - return str(obj) - elif isinstance(obj, datetime): - return obj.isoformat() - else: - return obj - -def admin_required(f): - @wraps(f) - def decorated_function(*args, **kwargs): - user_id = get_jwt_identity() - user_data = User.find_by_id(user_id) - - if not user_data or user_data.get('role') != 'admin': - return jsonify({"message": "Admin privileges required"}), 403 - - return f(*args, **kwargs) - - return decorated_function \ No newline at end of file diff --git a/backend/app/utils/__init__.py b/backend/app/utils/__init__.py index f837edfb..fb5b1702 100755 --- a/backend/app/utils/__init__.py +++ b/backend/app/utils/__init__.py @@ -1 +1,35 @@ -# Utils package for Synthetic Society backend \ No newline at end of file +# Utils package for Synthetic Society backend +from functools import wraps +from datetime import datetime +from bson import ObjectId +from quart import jsonify +from app.auth.quart_jwt import get_jwt_identity +from app.models.user import User + + +def make_serializable(obj): + """Recursively convert MongoDB documents to JSON-serializable types.""" + if isinstance(obj, dict): + return {k: make_serializable(v) for k, v in obj.items()} + elif isinstance(obj, list): + return [make_serializable(item) for item in obj] + elif isinstance(obj, ObjectId): + return str(obj) + elif isinstance(obj, datetime): + return obj.isoformat() + else: + return obj + + +def admin_required(f): + @wraps(f) + def decorated_function(*args, **kwargs): + user_id = get_jwt_identity() + user_data = User.find_by_id(user_id) + + if not user_data or user_data.get('role') != 'admin': + return jsonify({"message": "Admin privileges required"}), 403 + + return f(*args, **kwargs) + + return decorated_function \ No newline at end of file