21
21
import django_filters
22
22
from django_filters import rest_framework as filters
23
23
24
- from nxtbn .core .admin_permissions import GranularPermission
24
+ from nxtbn .core .admin_permissions import GranularPermission , CommonPermissions
25
+ from nxtbn .core .enum_perms import PermissionsEnum
25
26
from nxtbn .core .utils import to_currency_unit
26
27
from nxtbn .order .proccesor .views import OrderProccessorAPIView
27
28
from nxtbn .order import OrderAuthorizationStatus , OrderChargeStatus , OrderStatus , ReturnStatus
@@ -90,6 +91,7 @@ def filter_max_order_value(self, queryset, name, value):
90
91
91
92
92
93
class OrderListView (generics .ListAPIView ):
94
+ permission_classes = (CommonPermissions , )
93
95
queryset = Order .objects .all ()
94
96
serializer_class = OrderListSerializer
95
97
pagination_class = NxtbnPagination
@@ -103,10 +105,9 @@ class OrderListView(generics.ListAPIView):
103
105
search_fields = ['alias' , 'id' , 'user__username' , 'supplier__name' ]
104
106
ordering_fields = ['created_at' ]
105
107
106
- role_action = 'list'
107
-
108
108
109
109
class OrderDetailView (generics .RetrieveAPIView ):
110
+ permission_classes = (CommonPermissions , )
110
111
queryset = Order .objects .all ()
111
112
serializer_class = OrderDetailsSerializer
112
113
lookup_field = 'alias'
@@ -130,7 +131,7 @@ class OrderDetailView(generics.RetrieveAPIView):
130
131
131
132
132
133
class BasicStatsView (APIView ):
133
-
134
+ permission_classes = ( CommonPermissions , )
134
135
def get (self , request ):
135
136
# Get start and end dates from query parameters
136
137
start_date_str = request .query_params .get ('start_date' )
@@ -217,6 +218,7 @@ def get(self, request):
217
218
218
219
219
220
class OrderOverviewStatsView (APIView ):
221
+ permission_classes = (CommonPermissions , )
220
222
"""
221
223
View to provide an overview of order statistics within a specified date range.
222
224
Methods:
@@ -310,7 +312,7 @@ def get(self, request):
310
312
311
313
312
314
class OrderSummaryAPIView (APIView ):
313
-
315
+ permission_classes = ( CommonPermissions , )
314
316
def get (self , request , * args , ** kwargs ):
315
317
time_period = request .query_params .get ('time_period' ) # 'year', 'month', 'week', 'day'
316
318
current_date = datetime .now ()
@@ -392,12 +394,19 @@ def get(self, request, *args, **kwargs):
392
394
393
395
return Response (formatted_data )
394
396
class OrderEastimateView (OrderProccessorAPIView ):
395
- permission_classes = (GranularPermission , )
396
- gql_required_perm = 'order.eastimate_order'
397
-
398
397
create_order = False # Eastimate order
399
398
399
+ def check_permissions (self , request ):
400
+ if not request .user .is_staff :
401
+ self .permission_denied (
402
+ request ,
403
+ message = _ ("You do not have permission to perform this action." ),
404
+ code = 'permission_denied'
405
+ )
406
+
400
407
class OrderCreateView (OrderProccessorAPIView ):
408
+ permission_classes = (GranularPermission , )
409
+ required_perm = 'can_add_order'
401
410
create_order = True # Eastimate and create order
402
411
403
412
class CreateCustomAPIView (generics .CreateAPIView ):
0 commit comments