Fix user delete flow 12

This commit is contained in:
Urtzi Alfaro
2025-08-03 14:42:33 +02:00
parent b35eb7c875
commit b0d83720fd
7 changed files with 341 additions and 54 deletions

View File

@@ -508,13 +508,30 @@ async def transfer_tenant_ownership(
detail="Failed to transfer tenant ownership"
)
@router.delete("/users/{user_id}/memberships")
@router.delete("/tenants/user/{user_id}/memberships")
async def delete_user_memberships(
user_id: str,
current_user = Depends(get_current_user_dep),
_admin_check = Depends(require_admin_role),
db: AsyncSession = Depends(get_db)
):
# Check if this is a service call or admin user
user_type = current_user.get('type', '')
user_role = current_user.get('role', '').lower()
service_name = current_user.get('service', '')
logger.info("The user_type and user_role", user_type=user_type, user_role=user_role)
# ✅ IMPROVED: Accept service tokens OR admin users
is_service_token = (user_type == 'service' or service_name in ['auth', 'admin'])
is_admin_user = (user_role == 'admin')
if not (is_service_token or is_admin_user):
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="Admin role or service authentication required"
)
"""Delete all tenant memberships for a user (admin only)"""
try:
user_uuid = uuid.UUID(user_id)