fix/de los tickets T2026-05-027, T2025-09-004 y T2025-09-056

This commit is contained in:
2026-06-15 11:18:58 -06:00
parent 7644446267
commit 23ed52c78a
29 changed files with 2992 additions and 987 deletions

View File

@@ -11,6 +11,7 @@ from core.permissions import (
get_org_context,
require_permission,
user_has_permission,
user_has_role,
)
from api.organization.models import UsoAlmacenamiento, Organizacion
@@ -136,20 +137,28 @@ class ViewPedimentoServicesUtilInformation(LoggingMixin, APIView, FiltroPorOrgan
)
def get_queryset(self):
if not self.request.user.is_authenticated or not hasattr(self.request.user, 'organizacion'):
user = self.request.user
if not user.is_authenticated or not hasattr(user, 'organizacion'):
return None
org = get_org_context(self.request.user)
org = get_org_context(user)
if not org:
return ProcesamientoPedimento.objects.none()
if self.request.user.is_importador:
return ProcesamientoPedimento.objects.filter(
pedimento__organizacion=org,
pedimento__contribuyente__in=self.request.user.rfc.all(),
)
return ProcesamientoPedimento.objects.filter(pedimento__organizacion=org)
qs = ProcesamientoPedimento.objects.filter(pedimento__organizacion=org)
# Misma precedencia que los mixins de filtrado: superuser y roles
# operativos ven todo lo de su org; is_importador no los degrada.
if (
user.is_superuser or
user_has_role(user, 'admin') or
user_has_role(user, 'developer') or
user_has_role(user, 'Agente Aduanal') or
user_has_role(user, 'user')
):
return qs
if user.is_importador:
return qs.filter(pedimento__contribuyente__in=user.rfc.all())
return ProcesamientoPedimento.objects.none()
def get(self, request):
queryset = self.get_queryset()