From 95412d739a9fadc643a91775ee8fa4619341f187 Mon Sep 17 00:00:00 2001 From: feng626 <1304903146@qq.com> Date: Wed, 22 Sep 2021 15:46:23 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=B7=A5=E5=8D=95=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/tickets/models/ticket.py | 6 ++++-- apps/tickets/permissions/comment.py | 2 +- apps/tickets/permissions/ticket.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/tickets/models/ticket.py b/apps/tickets/models/ticket.py index 9abd29c96..beb6d129b 100644 --- a/apps/tickets/models/ticket.py +++ b/apps/tickets/models/ticket.py @@ -206,10 +206,12 @@ class Ticket(CommonModelMixin, OrgModelMixin): self.save() post_change_ticket_action.send(sender=self.__class__, ticket=self, action=action) - # ticket - def has_assignee(self, assignee): + def has_current_assignee(self, assignee): return self.ticket_steps.filter(ticket_assignees__assignee=assignee, level=self.approval_step).exists() + def has_all_assignee(self, assignee): + return self.ticket_steps.filter(ticket_assignees__assignee=assignee).exists() + @classmethod def get_user_related_tickets(cls, user): queries = Q(applicant=user) | Q(ticket_steps__ticket_assignees__assignee=user) diff --git a/apps/tickets/permissions/comment.py b/apps/tickets/permissions/comment.py index c478c7529..de21f367f 100644 --- a/apps/tickets/permissions/comment.py +++ b/apps/tickets/permissions/comment.py @@ -15,4 +15,4 @@ class IsApplicant(permissions.BasePermission): class IsAssignee(permissions.BasePermission): def has_permission(self, request, view): - return view.ticket.has_assignee(request.user) + return view.ticket.has_all_assignee(request.user) diff --git a/apps/tickets/permissions/ticket.py b/apps/tickets/permissions/ticket.py index bd77421a8..29c7dd7b5 100644 --- a/apps/tickets/permissions/ticket.py +++ b/apps/tickets/permissions/ticket.py @@ -3,7 +3,7 @@ from rest_framework import permissions class IsAssignee(permissions.BasePermission): def has_object_permission(self, request, view, obj): - return obj.has_assignee(request.user) + return obj.has_current_assignee(request.user) class IsApplicant(permissions.BasePermission):