diff --git a/apps/users/views.py b/apps/users/views.py index 8de36bb..dd6ce1b 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -37,11 +37,11 @@ class UserDetailView(generics.RetrieveAPIView): class AccountView(generics.RetrieveUpdateAPIView): serializer_class = AccountSerializer - authentication_classes = [OAuth2Authentication] permission_classes = [TokenMatchesOASRequirements] required_alternate_scopes = { "GET": [["accounts.account:retrieve"]], "POST": [["accounts.account:update"]], + "PUT": [["accounts.account:update"]], } def get_object(self): @@ -58,32 +58,32 @@ class RequestOTPView(generics.CreateAPIView): class ChangePasswordView(generics.UpdateAPIView): - permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] - serializer_class = ChangePasswordSerializer - required_scopes = ["accounts.account:change_password"] - model = User + permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope] + serializer_class = ChangePasswordSerializer + required_scopes = ["accounts.account:change_password"] + model = User - def get_object(self, queryset=None): - obj = self.request.user - return obj + def get_object(self, queryset=None): + obj = self.request.user + return obj - def update(self, request, *args, **kwargs): - self.object = self.get_object() - serializer = self.get_serializer(data=request.data) + def update(self, request, *args, **kwargs): + self.object = self.get_object() + serializer = self.get_serializer(data=request.data) - if serializer.is_valid(): - pass_field = serializer.data.get("old_password_field") - old_password = serializer.data.get("old_password") - new_password = serializer.data.get("new_password") - if not self.object.check_auth(pass_field, old_password): - return Response({"old_password": ["Wrong password/otp."]}, status=status.HTTP_400_BAD_REQUEST) + if serializer.is_valid(): + pass_field = serializer.data.get("old_password_field") + old_password = serializer.data.get("old_password") + new_password = serializer.data.get("new_password") + if not self.object.check_auth(pass_field, old_password): + return Response({"old_password": ["Wrong password/otp."]}, status=status.HTTP_400_BAD_REQUEST) - self.object.set_password(new_password) - self.object.last_update = timezone.now() - self.object.save() - return Response({"state": 'success'}, status=status.HTTP_200_OK) + self.object.set_password(new_password) + self.object.last_update = timezone.now() + self.object.save() + return Response({"state": 'success'}, status=status.HTTP_200_OK) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @login_required diff --git a/gooyal_accounts/settings.py b/gooyal_accounts/settings.py index 8e4fdd7..0e62645 100644 --- a/gooyal_accounts/settings.py +++ b/gooyal_accounts/settings.py @@ -107,7 +107,6 @@ TEMPLATES = [ ] AUTHENTICATION_BACKENDS = ( - # TODO: where use this? 'apps.users.backends.OTPBackend', 'django.contrib.auth.backends.ModelBackend', )