feature/rbac permisos y roles implementados

This commit is contained in:
2026-05-21 07:54:59 -06:00
parent 9bbed42cf3
commit a318b70324
38 changed files with 2596 additions and 901 deletions

View File

@@ -5,7 +5,7 @@ from rest_framework.response import Response
from rest_framework import status
from drf_yasg.utils import swagger_auto_schema
from drf_yasg import openapi
from core.permissions import IsSuperUser, IsSameOrganizationDeveloper
from core.permissions import require_permission
from .tasks.auditoria import (
crear_partidas,
auditar_coves,
@@ -84,7 +84,7 @@ def get_document_path(documento):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def crear_partidas_organizacion(request):
organizacion_id = request.data.get('organizacion_id')
@@ -122,7 +122,7 @@ def crear_partidas_organizacion(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def crear_partidas_pedimento(request):
pedimento_id = request.data.get('pedimento_id')
@@ -202,7 +202,7 @@ def crear_partidas_pedimento(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_pedimentos_endpoint(request):
"""
Inicia una tarea de auditoría para todos los pedimentos de una organización.
@@ -252,7 +252,7 @@ def auditar_pedimentos_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditar_procesamiento_remesa_pedimento_endpoint(request):
pedimento_id = request.data.get('pedimento_id')
@@ -339,7 +339,7 @@ def _lanzar_auditoria_organizacion(request, task_fn, label):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_coves_endpoint(request):
return _lanzar_auditoria_organizacion(request, auditar_coves, 'COVEs')
@@ -359,7 +359,7 @@ def auditar_coves_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_acuse_cove_endpoint(request):
return _lanzar_auditoria_organizacion(request, auditar_acuse_cove, 'acuses de COVE')
@@ -379,7 +379,7 @@ def auditar_acuse_cove_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_edocuments_endpoint(request):
return _lanzar_auditoria_organizacion(request, auditar_edocuments, 'EDocuments')
@@ -399,7 +399,7 @@ def auditar_edocuments_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_acuse_endpoint(request):
return _lanzar_auditoria_organizacion(request, auditar_acuse, 'acuses de EDocument')
@@ -419,7 +419,7 @@ def auditar_acuse_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_remesas_endpoint(request):
return _lanzar_auditoria_organizacion(request, auditar_remesas, 'remesas')
@@ -442,7 +442,7 @@ def auditar_remesas_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditar_cove_pedimento_endpoint(request):
pedimento_id = request.data.get('pedimento_id')
if not pedimento_id:
@@ -504,7 +504,7 @@ def auditar_cove_pedimento_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditar_acuse_cove_pedimento_endpoint(request):
pedimento_id = request.data.get('pedimento_id')
if not pedimento_id:
@@ -566,7 +566,7 @@ def auditar_acuse_cove_pedimento_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditar_edocument_pedimento_endpoint(request):
pedimento_id = request.data.get('pedimento_id')
if not pedimento_id:
@@ -628,7 +628,7 @@ def auditar_edocument_pedimento_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditar_acuse_pedimento_endpoint(request):
pedimento_id = request.data.get('pedimento_id')
if not pedimento_id:
@@ -687,7 +687,7 @@ def auditar_acuse_pedimento_endpoint(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditor_procesar_pedimentos_organizacion(request):
"""
Inicia una tarea de procesamiento para todos los pedimentos de todas las organizaciones.
@@ -739,7 +739,7 @@ def auditor_procesar_pedimentos_organizacion(request):
### Fin Procesamiento de pedimentos ###
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditar_peticion_respuesta_pedimento_completo(request):
"""
Backend endpoint para obtener las peticiones y respuestas asociadas a un pedimento.
@@ -884,7 +884,7 @@ def auditar_peticion_respuesta_pedimento_completo(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_pedimento_vu(request):
"""
Backend endpoint para obtener las peticiones y respuestas asociadas a un pedimento.
@@ -938,7 +938,7 @@ def auditor_obtener_peticion_pedimento_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_pedimento_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a un pedimento.
@@ -991,7 +991,7 @@ def auditor_obtener_respuesta_pedimento_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_remesa_vu(request):
"""
Backend endpoint para obtener las peticiones asociadas a una remesa.
@@ -1045,7 +1045,7 @@ def auditor_obtener_peticion_remesa_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_remesa_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a una remesa.
@@ -1098,7 +1098,7 @@ def auditor_obtener_respuesta_remesa_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_partidas_vu(request):
"""
Backend endpoint para obtener las peticiones asociadas a una remesa.
@@ -1178,7 +1178,7 @@ def auditor_obtener_peticion_partidas_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_partidas_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a una remesa.
@@ -1231,7 +1231,7 @@ def auditor_obtener_respuesta_partidas_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_acuse_vu(request):
"""
Backend endpoint para obtener las peticiones asociadas a una remesa.
@@ -1285,7 +1285,7 @@ def auditor_obtener_peticion_acuse_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_acuse_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a una remesa.
@@ -1338,7 +1338,7 @@ def auditor_obtener_respuesta_acuse_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_cove_vu(request):
"""
Backend endpoint para obtener las peticiones asociadas a una remesa.
@@ -1392,7 +1392,7 @@ def auditor_obtener_peticion_cove_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_cove_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a una remesa.
@@ -1445,7 +1445,7 @@ def auditor_obtener_respuesta_cove_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_acuse_cove_vu(request):
"""
Backend endpoint para obtener las peticiones asociadas a una remesa.
@@ -1499,7 +1499,7 @@ def auditor_obtener_peticion_acuse_cove_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_acuse_cove_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a una remesa.
@@ -1552,7 +1552,7 @@ def auditor_obtener_respuesta_acuse_cove_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_peticion_edocument_vu(request):
"""
Backend endpoint para obtener las peticiones asociadas a una remesa.
@@ -1606,7 +1606,7 @@ def auditor_obtener_peticion_edocument_vu(request):
}, status=status.HTTP_200_OK)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.view')])
def auditor_obtener_respuesta_edocument_vu(request):
"""
Backend endpoint para obtener las respuestas asociadas a una remesa.
@@ -1677,7 +1677,7 @@ def auditor_obtener_respuesta_edocument_vu(request):
}
)
@api_view(['POST'])
@permission_classes([IsAuthenticated & (IsSuperUser | IsSameOrganizationDeveloper)])
@permission_classes([IsAuthenticated, require_permission('auditoria.process')])
def auditar_pedimento_endpoint(request):
"""
Audita un pedimento específico verificando si existe su XML y extrayendo información.