[vpn] implement creating vpns
This commit is contained in:
parent
cf948b03a8
commit
cd19c47fdb
6 changed files with 130 additions and 55 deletions
|
|
@ -1,15 +1,16 @@
|
|||
from django.views.generic.edit import CreateView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from rest_framework.response import Response
|
||||
|
||||
from django.shortcuts import render
|
||||
|
||||
from rest_framework import viewsets, permissions
|
||||
|
||||
|
||||
from .models import *
|
||||
from .serializers import *
|
||||
from .selectors import *
|
||||
from .services import *
|
||||
from .forms import *
|
||||
|
||||
# class VPNPoolViewSet(viewsets.ModelViewSet):
|
||||
|
|
@ -17,12 +18,6 @@ from .forms import *
|
|||
# permission_classes = [permissions.IsAdminUser]
|
||||
# queryset = VPNPool.objects.all()
|
||||
|
||||
# class VPNNetworkReservationViewSet(viewsets.ModelViewSet):
|
||||
# serializer_class = VPNNetworkReservationSerializer
|
||||
# permission_classes = [permissions.IsAdminUser]
|
||||
# queryset = VPNNetworkReservation.objects.all()
|
||||
|
||||
|
||||
class WireGuardVPNViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = WireGuardVPNSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
|
@ -35,6 +30,17 @@ class WireGuardVPNViewSet(viewsets.ModelViewSet):
|
|||
|
||||
return obj
|
||||
|
||||
def create(self, request):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
vpn = create_wireguard_vpn(
|
||||
owner=self.request.user,
|
||||
public_key=serializer.validated_data['wireguard_public_key'],
|
||||
network_mask=serializer.validated_data['network_mask']
|
||||
)
|
||||
return Response(WireGuardVPNSerializer(vpn).data)
|
||||
|
||||
|
||||
class WireGuardVPNCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
|
||||
model = WireGuardVPN
|
||||
|
|
@ -48,15 +54,3 @@ class WireGuardVPNCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView
|
|||
def get_success_message(self, cleaned_data):
|
||||
return self.success_message % dict(cleaned_data,
|
||||
the_prefix = self.object.prefix)
|
||||
|
||||
# def get_context_data(self, **kwargs):
|
||||
# context = super().get_context_data(**kwargs)
|
||||
# context['available_sizes'] = 2
|
||||
# return context
|
||||
|
||||
# def post(request, *args, **kwargs):
|
||||
# print(request)
|
||||
# print(*args)
|
||||
# print(*kwargs)
|
||||
|
||||
# def post(self, request, *args, **kwargs):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue