Fix make_serializable import — move to utils/__init__.py (was shadowed by utils/ package)
This commit is contained in:
parent
d1788a4017
commit
05d7ea68e2
2 changed files with 35 additions and 34 deletions
|
|
@ -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
|
||||
|
|
@ -1 +1,35 @@
|
|||
# Utils package for Synthetic Society backend
|
||||
# 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
|
||||
Loading…
Add table
Reference in a new issue