mirror of
https://github.com/ChrispyBacon-dev/DockFlare.git
synced 2026-04-28 03:39:32 +00:00
28 lines
901 B
Python
28 lines
901 B
Python
from functools import wraps
|
|
from flask import request, jsonify
|
|
from app.core.jwt_auth import verify_jwt
|
|
|
|
def jwt_required(f):
|
|
@wraps(f)
|
|
def decorated(*args, **kwargs):
|
|
auth_header = request.headers.get('Authorization')
|
|
if not auth_header or not auth_header.startswith('Bearer '):
|
|
return jsonify({'error': 'Missing or invalid token'}), 401
|
|
|
|
token = auth_header.split(' ')[1]
|
|
decoded = verify_jwt(token)
|
|
if not decoded:
|
|
return jsonify({'error': 'Invalid token'}), 401
|
|
|
|
request.user = decoded
|
|
return f(*args, **kwargs)
|
|
return decorated
|
|
|
|
def admin_required(f):
|
|
@wraps(f)
|
|
@jwt_required
|
|
def decorated(*args, **kwargs):
|
|
if request.user.get('role') != 'admin':
|
|
return jsonify({'error': 'Admin required'}), 403
|
|
return f(*args, **kwargs)
|
|
return decorated
|