Add authentication

This commit is contained in:
Modulos 2017-05-11 12:45:09 +02:00
commit 358d70570a
7 changed files with 149 additions and 30 deletions

View file

@ -1,13 +1,26 @@
from rest_framework import generics
from rest_framework import permissions
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth import authenticate, login
from utils.views import LoginViewMixin
from membership.models import CustomUser, StripeCustomer
from guardian.mixins import PermissionRequiredMixin
from .serializers import VirtualMachineTemplateSerializer, \
VirtualMachineSerializer
from .models import VirtualMachineTemplate, VirtualMachine, OpenNebulaManager
from .permissions import IsOwner
class TemplateCreateView(generics.ListCreateAPIView):
"""This class defines the create behavior of our rest api."""
"""This class handles the GET and POST requests."""
queryset = VirtualMachineTemplate.objects.all()
serializer_class = VirtualMachineTemplateSerializer
permission_classes = (permissions.IsAuthenticated, permissions.IsAdminUser)
def perform_create(self, serializer):
"""Save the post data when creating a new template."""
@ -18,18 +31,21 @@ class TemplateDetailsView(generics.RetrieveUpdateDestroyAPIView):
queryset = VirtualMachineTemplate.objects.all()
serializer_class = VirtualMachineTemplateSerializer
permission_classes = (permissions.IsAuthenticated)
class VmCreateView(generics.ListCreateAPIView):
"""This class defines the create behavior of our rest api."""
"""This class handles the GET and POST requests."""
queryset = VirtualMachine.objects.all()
serializer_class = VirtualMachineSerializer
permission_classes = (permissions.IsAuthenticated, IsOwner)
def perform_create(self, serializer):
"""Save the post data when creating a new template."""
serializer.save()
serializer.save(owner=self.request.user)
class VmDetailsView(generics.RetrieveUpdateDestroyAPIView):
"""This class handles the http GET, PUT and DELETE requests."""
permission_classes = (permissions.IsAuthenticated, IsOwner)
queryset = VirtualMachine.objects.all()
serializer_class = VirtualMachineSerializer