33 lines
1000 B
Python
33 lines
1000 B
Python
from fastapi import APIRouter, Depends
|
|
from pydantic import BaseModel
|
|
|
|
from backend.services.permission.permission_service import PermissionService
|
|
from common.token.token_manager import TokenManager
|
|
|
|
token_manager = TokenManager()
|
|
router = APIRouter()
|
|
permission_service = PermissionService()
|
|
|
|
|
|
class DeletePermissionRequest(BaseModel):
|
|
permission_id: str
|
|
|
|
|
|
class DeletePermissionResponse(BaseModel):
|
|
success: bool
|
|
|
|
|
|
@router.post(
|
|
"/delete",
|
|
response_model=DeletePermissionResponse,
|
|
operation_id="delete-permission",
|
|
summary="Delete Permission",
|
|
description="Delete a permission after checking if it is referenced by any role."
|
|
)
|
|
async def delete_permission(
|
|
req: DeletePermissionRequest,
|
|
#_: bool = Depends(token_manager.has_all_permissions([DefaultPermissionEnum.CHANGE_PERMISSIONS.value.permission_key]))
|
|
) -> DeletePermissionResponse:
|
|
await permission_service.delete_permission(req.permission_id)
|
|
return DeletePermissionResponse(success=True)
|