elmeg-demo/backend/dependencies.py

15 lines
507 B
Python

from fastapi import Depends, HTTPException, status
from models import User
from auth import get_current_user
class RoleChecker:
def __init__(self, allowed_roles: list[str]):
self.allowed_roles = allowed_roles
def __call__(self, user: User = Depends(get_current_user)):
if user.role not in self.allowed_roles:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Operation not permitted"
)
return user