From 846eb79c6e1dfe9ff96970690a8c3c00ce57f461 Mon Sep 17 00:00:00 2001 From: Jon Date: Mon, 28 Oct 2024 16:54:15 +0930 Subject: [PATCH] test(assistance): Request Ticket API v2 ViewSet permission checks ref: #15 #248 #365 --- app/assistance/serializers/request.py | 1 - .../ticket_request/test_ticket_request_viewset.py | 13 +++++++++++++ app/core/serializers/ticket.py | 11 ++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 app/assistance/tests/unit/ticket_request/test_ticket_request_viewset.py diff --git a/app/assistance/serializers/request.py b/app/assistance/serializers/request.py index 6e79bdf5..9c89ec27 100644 --- a/app/assistance/serializers/request.py +++ b/app/assistance/serializers/request.py @@ -107,7 +107,6 @@ class RequestAddTicketModelSerializer( 'real_start_date', 'real_finish_date', 'opened_by', - 'organization', 'project', 'milestone', 'subscribed_teams', diff --git a/app/assistance/tests/unit/ticket_request/test_ticket_request_viewset.py b/app/assistance/tests/unit/ticket_request/test_ticket_request_viewset.py new file mode 100644 index 00000000..42e987ac --- /dev/null +++ b/app/assistance/tests/unit/ticket_request/test_ticket_request_viewset.py @@ -0,0 +1,13 @@ +from django.test import TestCase + +from core.tests.abstract.test_ticket_viewset import Ticket, TicketViewSetPermissionsAPI + + +class TicketRequestPermissionsAPI( + TicketViewSetPermissionsAPI, + TestCase, +): + + ticket_type = 'request' + + ticket_type_enum = Ticket.TicketType.REQUEST diff --git a/app/core/serializers/ticket.py b/app/core/serializers/ticket.py index 6ae308bc..d7d28710 100644 --- a/app/core/serializers/ticket.py +++ b/app/core/serializers/ticket.py @@ -145,7 +145,7 @@ class TicketModelSerializer(TicketBaseSerializer): try: - self.validated_data['ticket_type'] = self._context['view'].ticket_type_id + self.validated_data['ticket_type'] = self._context['view']._ticket_type_id except: @@ -154,6 +154,15 @@ class TicketModelSerializer(TicketBaseSerializer): raise UnknownTicketType() + if 'view' in self._context: + + if self._context['view'].action == 'create': + + if hasattr(self._context['view'], 'request'): + + self.validated_data['opened_by_id'] = self._context['view'].request.user.id + + return is_valid