permission checker
This commit is contained in:
18
app/dependencies/permissions_checker.py
Normal file
18
app/dependencies/permissions_checker.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from ..dependencies import users_active
|
||||
from fastapi import Depends, HTTPException, status
|
||||
from ..models import users
|
||||
|
||||
|
||||
class PermissionChecker:
|
||||
|
||||
def __init__(self, roles: list[str]) -> None:
|
||||
self.roles = roles
|
||||
|
||||
def __call__(self, user: users.User = Depends(users_active.get_current_active_user)) -> bool:
|
||||
for role in self.roles:
|
||||
if role == user.roles:
|
||||
return True
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail='Roles unauthorized'
|
||||
)
|
Reference in New Issue
Block a user