mirror of https://github.com/jumpserver/jumpserver
				
				
				
			fix: 修改用户相关tickets为自己申请的或者待受理的
							parent
							
								
									4de2ae607d
								
							
						
					
					
						commit
						44a42e4739
					
				| 
						 | 
				
			
			@ -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)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue