From ee5f8fca476488bcfe19cafedcb8a503e7b9f1fc Mon Sep 17 00:00:00 2001 From: mahdavi Date: Fri, 1 Jan 2021 22:07:16 +0330 Subject: [PATCH] update transaction scopes --- apps/transactions/views.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/transactions/views.py b/apps/transactions/views.py index 3a0a425..372018b 100755 --- a/apps/transactions/views.py +++ b/apps/transactions/views.py @@ -4,6 +4,7 @@ from oauth2_provider.contrib.rest_framework import TokenHasScope, IsAuthenticate from rest_framework import generics, permissions from rest_framework.response import Response +from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements from apps.transactions.models import Transaction from apps.transactions.serializers import TransactionSerializer, DepositSerializer, WithdrawSerializer from apps.users.constans import STATE_CHOICES @@ -22,9 +23,12 @@ def get_application_client_id(request): class TransactionList(generics.ListCreateAPIView): - permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] + permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements] serializer_class = TransactionSerializer - required_scopes = [] + required_alternate_scopes = { + "GET": [['wallet.transaction:list']], + "POST": [['wallet.invoice:create']], + } def get_queryset(self): user = self.request.user @@ -39,7 +43,7 @@ class TransactionDetail(generics.RetrieveAPIView): permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] serializer_class = TransactionSerializer lookup_field = 'uuid' - required_scopes = [] + required_scopes = ['wallet.transaction:retrieve'] def get_queryset(self): user = self.request.user @@ -50,7 +54,7 @@ class TransactionPay(generics.RetrieveAPIView): permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] serializer_class = TransactionSerializer lookup_field = 'uuid' - required_scopes = [] + required_scopes = ['wallet.invoice:pay'] def get_queryset(self): user = self.request.user @@ -67,7 +71,7 @@ class TransactionReceipt(generics.RetrieveAPIView): permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] serializer_class = TransactionSerializer lookup_field = 'uuid' - required_scopes = [] + required_scopes = ['wallet.invoice:receipt'] def get_queryset(self): user = self.request.user @@ -83,7 +87,7 @@ class TransactionReceipt(generics.RetrieveAPIView): class DepositSubmit(generics.CreateAPIView): permission_classes = [TokenHasScope] serializer_class = DepositSerializer - required_scopes = ['transactions.deposit:submit'] + required_scopes = ['wallet.deposit:submit'] def get_queryset(self): application_client_id = get_application_client_id(self.request) @@ -98,7 +102,7 @@ class DepositVerify(generics.RetrieveAPIView): permission_classes = [TokenHasScope] serializer_class = DepositSerializer lookup_field = 'uuid' - required_scopes = ['transactions.deposit:verify'] + required_scopes = ['wallet.deposit:verify'] def get_queryset(self): application_client_id = get_application_client_id(self.request) @@ -116,7 +120,7 @@ class DepositVerify(generics.RetrieveAPIView): class WithdrawSubmit(generics.CreateAPIView): permission_classes = [TokenHasScope] serializer_class = WithdrawSerializer - required_scopes = ['transactions.withdraw:submit'] + required_scopes = ['wallet.withdraw:submit'] def get_queryset(self): application_client_id = get_application_client_id(self.request) @@ -131,7 +135,7 @@ class WithdrawVerify(generics.RetrieveAPIView): permission_classes = [TokenHasScope] serializer_class = WithdrawSerializer lookup_field = 'uuid' - required_scopes = ['transactions.withdraw:verify'] + required_scopes = ['wallet.withdraw:verify'] def get_queryset(self): application_client_id = get_application_client_id(self.request)