feat(rbac): add roles and permissions
This commit is contained in:
parent
86a32a942c
commit
694b7bd09a
37 changed files with 2682 additions and 218 deletions
27
backend/hermes/app/api/permissions.py
Normal file
27
backend/hermes/app/api/permissions.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import logging
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.rbac import require_permission
|
||||
from app.db.database import get_db
|
||||
from app.models.user import User
|
||||
from app.repositories.rbac_repository import RbacRepository
|
||||
from app.schemas.rbac import PermissionResponse
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter(
|
||||
prefix="/permissions",
|
||||
tags=["Permissions"],
|
||||
)
|
||||
|
||||
|
||||
@router.get("", response_model=list[PermissionResponse])
|
||||
@router.get("/", response_model=list[PermissionResponse], include_in_schema=False)
|
||||
def get_permissions(
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(require_permission("roles.read")),
|
||||
):
|
||||
logger.info("permissions.list", extra={"actor_user_id": current_user.id})
|
||||
return RbacRepository.get_permissions(db)
|
||||
Loading…
Add table
Add a link
Reference in a new issue