From 6299c6f0fea7b8b5a83380f98540fd8af757091d Mon Sep 17 00:00:00 2001 From: Luis Date: Tue, 3 Feb 2026 12:01:22 -0700 Subject: [PATCH] fix: Filtrar procesos por organizacion dependiando del usuario, solo se debe mostrar todos cuando sea superusuario, en caso contrario solo lo que pertenezca al usuario. --- api/tasks/views.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/api/tasks/views.py b/api/tasks/views.py index 25a3afd..847e5c7 100644 --- a/api/tasks/views.py +++ b/api/tasks/views.py @@ -4,6 +4,7 @@ from django_filters.rest_framework import DjangoFilterBackend from rest_framework.pagination import PageNumberPagination from api.logger.mixins import LoggingMixin +from mixins.filtrado_organizacion import OrganizacionFiltradaMixin, ProcesosPorOrganizacionMixin from .models import Task from .serializers import TaskSerializer from .filters import TaskFilter @@ -22,7 +23,7 @@ class TaskPagination(PageNumberPagination): page_size_query_param = 'page_size' max_page_size = 100 -class TaskViewSet(LoggingMixin,viewsets.ModelViewSet): +class TaskViewSet(LoggingMixin,viewsets.ModelViewSet,OrganizacionFiltradaMixin): permission_classes = [IsAuthenticated & (IsSameOrganization | IsSameOrganizationAndAdmin | IsSameOrganizationDeveloper | IsSuperUser)] queryset = Task.objects.select_related('pedimento', 'servicio').all() serializer_class = TaskSerializer @@ -32,4 +33,20 @@ class TaskViewSet(LoggingMixin,viewsets.ModelViewSet): ordering_fields = ['timestamp'] ordering = ['-timestamp'] # ordenamiento por defecto, más reciente primero - my_tags = ['tasks'] \ No newline at end of file + my_tags = ['tasks'] + + def get_queryset(self): + + """ + Filtra las tareas según la organización del usuario. + Superusuarios pueden ver todas las tareas. + """ + queryset = self.get_queryset_filtrado_por_organizacion() # Tambien filtra por importador + # user = self.request.user + # if user.is_superuser: + # return self.queryset + # # return self.queryset.filter(organizacion_id=user.organizacion.id) + # else: + # return self.queryset.filter(organizacion_id=user.organizacion.id) + return queryset + \ No newline at end of file