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