update the roles

manzilcheck
Kushal Dotel 6 months ago
parent 5776753174
commit 63ee89b329
  1. 12
      backend/blueprints/profile/__init__.py
  2. 8
      backend/utils/auth.py

@ -1,9 +1,11 @@
from email.policy import default from email.policy import default
from flask import Blueprint, request, jsonify, current_app from flask import Blueprint, request, jsonify, current_app, g
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
from datetime import datetime from datetime import datetime
from utils.auth import auth_required, requires_role
from db.model import db from db.model import db
from db.model import User, UserRole, Session # Adjust based on your model's location from db.model import User, Session, UserRole # Adjust based on your model's location
# from constants import UserRole
from werkzeug.security import generate_password_hash,check_password_hash from werkzeug.security import generate_password_hash,check_password_hash
import uuid import uuid
import os import os
@ -169,3 +171,9 @@ def login():
# def profile_info(user_uuid): # def profile_info(user_uuid):
# return user_uuid # return user_uuid
#make a get request to get json on hello word
@profile.route('/hello')
@auth_required()
@requires_role([UserRole.ADMIN])
def hello():
return jsonify({"message": f"Hello {g.current_user.firstame}"}), 200

@ -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
Loading…
Cancel
Save