|
|
@ -1,8 +1,8 @@ |
|
|
|
from functools import wraps |
|
|
|
from functools import wraps |
|
|
|
from flask import request, jsonify, g |
|
|
|
from flask import request, jsonify, g |
|
|
|
from sqlalchemy import select, and_ |
|
|
|
from sqlalchemy import select, and_ |
|
|
|
from ..db.model import User, Session, db |
|
|
|
from db.model import User, Session, db |
|
|
|
from ..constants import UserRole |
|
|
|
from constants import UserRole |
|
|
|
|
|
|
|
|
|
|
|
def auth_required(): |
|
|
|
def auth_required(): |
|
|
|
def decorator(f): |
|
|
|
def decorator(f): |
|
|
@ -38,8 +38,10 @@ def requires_role(roles=None): |
|
|
|
@wraps(f) |
|
|
|
@wraps(f) |
|
|
|
def decorated_function(*args, **kwargs): |
|
|
|
def decorated_function(*args, **kwargs): |
|
|
|
if g.get('is_authed', False) is False: |
|
|
|
if g.get('is_authed', False) is False: |
|
|
|
return jsonify({'error': 'Unauthorized'}) |
|
|
|
return jsonify({'error': 'Unauthorized'}), 401 |
|
|
|
if g.current_user.role in roles: |
|
|
|
if g.current_user.role in roles: |
|
|
|
return f(*args, **kwargs) |
|
|
|
return f(*args, **kwargs) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
return jsonify({'error': 'Forbidden'}), 403 |
|
|
|
return decorated_function |
|
|
|
return decorated_function |
|
|
|
return decorator |
|
|
|
return decorator |