From 44a42e4739b6dfa2748f1a170f3598c00f3d7927 Mon Sep 17 00:00:00 2001 From: Bai Date: Tue, 19 Jan 2021 19:41:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9B=B8=E5=85=B3tickets=E4=B8=BA=E8=87=AA=E5=B7=B1=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E7=9A=84=E6=88=96=E8=80=85=E5=BE=85=E5=8F=97=E7=90=86?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/tickets/api/ticket.py | 2 +- apps/tickets/models/ticket.py | 32 +++----------------------------- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/apps/tickets/api/ticket.py b/apps/tickets/api/ticket.py index 07b6ec89e..91a585298 100644 --- a/apps/tickets/api/ticket.py +++ b/apps/tickets/api/ticket.py @@ -50,7 +50,7 @@ class TicketViewSet(CommonApiMixin, viewsets.ModelViewSet): instance = serializer.save() instance.open(applicant=self.request.user) - @action(detail=False, methods=[POST]) + @action(detail=False, methods=[POST], permission_classes=[IsValidUser, ]) def open(self, request, *args, **kwargs): return super().create(request, *args, **kwargs) diff --git a/apps/tickets/models/ticket.py b/apps/tickets/models/ticket.py index 97d99e4b3..41d23c8b0 100644 --- a/apps/tickets/models/ticket.py +++ b/apps/tickets/models/ticket.py @@ -148,35 +148,9 @@ class Ticket(CommonModelMixin, OrgModelMixin): @classmethod def get_user_related_tickets(cls, user): - queries = None - tickets = cls.all() - if user.is_superuser: - pass - elif user.is_super_auditor: - pass - elif user.is_org_admin: - admin_orgs_id = [ - str(org_id) for org_id in user.admin_orgs.values_list('id', flat=True) - ] - assigned_tickets_id = [ - str(ticket_id) for ticket_id in user.assigned_tickets.values_list('id', flat=True) - ] - queries = Q(applicant=user) - queries |= Q(processor=user) - queries |= Q(org_id__in=admin_orgs_id) - queries |= Q(id__in=assigned_tickets_id) - elif user.is_org_auditor: - audit_orgs_id = [ - str(org_id) for org_id in user.audit_orgs.values_list('id', flat=True) - ] - queries = Q(org_id__in=audit_orgs_id) - elif user.is_common_user: - queries = Q(applicant=user) - else: - tickets = cls.objects.none() - if queries: - tickets = tickets.filter(queries) - return tickets.distinct() + queries = Q(applicant=user) | Q(assignees=user) + tickets = cls.all().filter(queries).distinct() + return tickets @classmethod def all(cls):