cleanup scopes

This commit is contained in:
mahdavi 2020-11-01 23:25:23 +03:30
parent 60527d18c3
commit 200f1f9541

View file

@ -3,11 +3,11 @@ from django.contrib.auth.decorators import login_required
from django.contrib.auth.views import LoginView from django.contrib.auth.views import LoginView
from django.shortcuts import render from django.shortcuts import render
from django.utils import timezone from django.utils import timezone
from oauth2_provider.contrib.rest_framework import IsAuthenticatedOrTokenHasScope, OAuth2Authentication, \ from oauth2_provider.contrib.rest_framework import IsAuthenticatedOrTokenHasScope
TokenMatchesOASRequirements from rest_framework import generics, status
from rest_framework import generics, permissions, status
from rest_framework.response import Response from rest_framework.response import Response
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
from apps.users.forms import OTPAuthenticationForm from apps.users.forms import OTPAuthenticationForm
from apps.users.models import User from apps.users.models import User
from apps.users.serializers import PublicUserSerializer, AccountSerializer, RequestOTPSerializer, \ from apps.users.serializers import PublicUserSerializer, AccountSerializer, RequestOTPSerializer, \
@ -17,7 +17,7 @@ UserModel = get_user_model()
class UserListView(generics.ListAPIView): class UserListView(generics.ListAPIView):
permission_classes = [permissions.IsAuthenticated, TokenMatchesOASRequirements] permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
queryset = User.objects.all() queryset = User.objects.all()
serializer_class = PublicUserSerializer serializer_class = PublicUserSerializer
required_alternate_scopes = { required_alternate_scopes = {
@ -26,7 +26,7 @@ class UserListView(generics.ListAPIView):
class UserDetailView(generics.RetrieveAPIView): class UserDetailView(generics.RetrieveAPIView):
permission_classes = [permissions.IsAuthenticated, TokenMatchesOASRequirements] permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
queryset = User.objects.all() queryset = User.objects.all()
serializer_class = PublicUserSerializer serializer_class = PublicUserSerializer
lookup_field = 'uuid' lookup_field = 'uuid'
@ -37,12 +37,13 @@ class UserDetailView(generics.RetrieveAPIView):
class AccountView(generics.RetrieveUpdateAPIView): class AccountView(generics.RetrieveUpdateAPIView):
serializer_class = AccountSerializer serializer_class = AccountSerializer
permission_classes = [TokenMatchesOASRequirements] permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
required_alternate_scopes = { required_alternate_scopes = {
"GET": [["accounts.account:retrieve"]], "GET": [["accounts.account:retrieve"]],
"POST": [["accounts.account:update"]], "POST": [["accounts.account:update"]],
"PUT": [["accounts.account:update"]], "PUT": [["accounts.account:update"]],
} "PATCH": [["accounts.account:update"]],
}
def get_object(self): def get_object(self):
return self.request.user return self.request.user
@ -58,7 +59,7 @@ class RequestOTPView(generics.CreateAPIView):
class ChangePasswordView(generics.UpdateAPIView): class ChangePasswordView(generics.UpdateAPIView):
permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] permission_classes = [IsAuthenticatedOrTokenHasScope]
serializer_class = ChangePasswordSerializer serializer_class = ChangePasswordSerializer
required_scopes = ["accounts.account:change_password"] required_scopes = ["accounts.account:change_password"]
model = User model = User