fixed regression introduced

This commit is contained in:
Sam
2021-02-02 11:46:43 +00:00
parent ec584b7aab
commit c8d433c3f9
20 changed files with 377 additions and 237 deletions

View File

@@ -1,29 +1,26 @@
from django.shortcuts import render, get_object_or_404
from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth import get_user_model
from rest_framework import status
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.permissions import IsAdminUser
from rest_framework.generics import UpdateAPIView
from . import models
from . import serializers
from back_latienda.permissions import CustomUserPermissions
from back_latienda.permissions import CustomUserPermissions, YourOwnUserPermissions
# Create your views here.
User = get_user_model()
class CustomUserViewSet(viewsets.ModelViewSet):
model = User
model = models.CustomUser
# serializer_class = serializers.CustomUserSerializer
serializer_class = serializers.CustomUserReadSerializer
write_serializer_class =serializers.CustomUserWriteSerializer
model_name = 'custom_user'
queryset = User.objects.all()
queryset = models.CustomUser.objects.all()
permission_classes = [CustomUserPermissions,]
def create(self, request):
@@ -50,35 +47,18 @@ class CustomUserViewSet(viewsets.ModelViewSet):
except Exception as e:
return Response(str(e), status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def update(self, request, pk):
"""
Update CustomUser Instance
"""
try:
serializer = self.write_serializer_class(
data=request.data,
)
if serializer.is_valid():
# save model instance data
password = serializer.validated_data.pop('password')
instance = get_object_or_404(User, pk=pk)
for key, value in serializer.validated_data.items():
instance.__dict__[key] = value
class ChangeUserPasswordView(UpdateAPIView):
instance.set_password(password)
instance.save()
model = models.CustomUser
queryset = model.objects.all()
permission_classes = (YourOwnUserPermissions,)
serializer_class = serializers.ChangePasswordSerializer
return Response(self.serializer_class(
instance, many=False, context={'request': request}).data,
status=status.HTTP_201_CREATED)
else:
return Response(
serializer.errors, status=status.HTTP_406_NOT_ACCEPTABLE)
except Exception as e:
return Response(str(e), status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def get_object(self):
obj = get_object_or_404(self.get_queryset(), pk=self.kwargs["pk"])
self.check_object_permissions(self.request, obj)
return obj
class UpdateUserView(UpdateAPIView):
model = models.CustomUser
queryset = model.objects.all()
permission_classes = (YourOwnUserPermissions,)
serializer_class = serializers.UpdateUserSerializer