33 lines
913 B
Python
33 lines
913 B
Python
from fastapi import APIRouter, Depends
|
|
from pydantic import BaseModel
|
|
|
|
from backend.models.permission.constants import DefaultPermissionEnum
|
|
from backend.services.permission.role_service import RoleService
|
|
from common.utils.jwt_token import has_all_permissions
|
|
|
|
router = APIRouter()
|
|
role_service = RoleService()
|
|
|
|
|
|
class DeleteRoleRequest(BaseModel):
|
|
role_id: str
|
|
|
|
|
|
class DeleteRoleResponse(BaseModel):
|
|
success: bool
|
|
|
|
|
|
@router.post(
|
|
"/delete",
|
|
response_model=DeleteRoleResponse,
|
|
operation_id="delete-role",
|
|
summary="Delete Role",
|
|
description="Delete a role after checking if it is referenced by any user."
|
|
)
|
|
async def delete_role(
|
|
req: DeleteRoleRequest,
|
|
_: bool = Depends(has_all_permissions([DefaultPermissionEnum.CHANGE_ROLES.value.permission_key]))
|
|
) -> DeleteRoleResponse:
|
|
await role_service.delete_role(req.role_id)
|
|
return DeleteRoleResponse(success=True)
|