owner can delete server data
Some checks failed
Build and Push Docker Image / build (push) Has been cancelled
Some checks failed
Build and Push Docker Image / build (push) Has been cancelled
This commit is contained in:
parent
45322df5b6
commit
83a0ef25fe
@ -3,7 +3,8 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django_filters import rest_framework as rest_filters
|
from django_filters import rest_framework as rest_filters
|
||||||
from rest_framework import permissions, filters, generics
|
from rest_framework import permissions, filters, generics, status
|
||||||
|
from rest_framework.response import Response
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination
|
||||||
from rest_framework.authentication import SessionAuthentication, TokenAuthentication
|
from rest_framework.authentication import SessionAuthentication, TokenAuthentication
|
||||||
from rest_framework.parsers import MultiPartParser, FormParser
|
from rest_framework.parsers import MultiPartParser, FormParser
|
||||||
@ -93,13 +94,25 @@ class Server_ListView(ListView):
|
|||||||
return Server.objects.filter(id__in=servers).order_by("id")
|
return Server.objects.filter(id__in=servers).order_by("id")
|
||||||
|
|
||||||
|
|
||||||
class Server_DetailView(DetailView):
|
class Server_DetailView(DeletableDetailView):
|
||||||
serializer_class = ServerSerializer
|
serializer_class = ServerSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True)
|
servers = ServerMember.objects.filter(user=self.request.user).values_list("server", flat=True)
|
||||||
return Server.objects.filter(id__in=servers)
|
return Server.objects.filter(id__in=servers)
|
||||||
|
|
||||||
|
def destroy(self, request, *args, **kwargs):
|
||||||
|
server = self.get_object()
|
||||||
|
member = ServerMember.objects.get(server=server, user=request.user)
|
||||||
|
|
||||||
|
if not member.is_owner:
|
||||||
|
return Response(
|
||||||
|
{"detail": "Only the owner can destroy server data."},
|
||||||
|
status=status.HTTP_403_FORBIDDEN
|
||||||
|
)
|
||||||
|
|
||||||
|
return super().destroy(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
# region Filters
|
# region Filters
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user