Complete primitive backend

This commit is contained in:
Alexander Laevens
2022-11-22 16:16:34 -07:00
commit 35fc396050
29 changed files with 840 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
from rest_framework import generics, permissions, views, status
from rest_framework.response import Response
from users import serializers, models
class IsOwner(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if obj == request.user:
return True
else:
return False
# Anyone can register
class RegisterUserView(generics.CreateAPIView):
model = models.User
serializer_class = serializers.UserSerializer
permission_classes = [permissions.AllowAny]
# Allows user to modify their own data only
class ModifyUserView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = [
permissions.IsAuthenticated,
IsOwner
]
model = models.User
serializer_class = serializers.UserSerializer
def get_object(self):
return models.User.objects.get(pk=self.request.user.id)
def retrieve(self, request, *args, **kwargs):
user = models.User.objects.get(pk=request.user.id)
serializer = serializers.UserSerializer(user)
return Response(serializer.data)