Skip to content

Commit fc9c9c3

Browse files
MoettoUular
authored andcommitted
Only admins can delete games with players in them
1 parent 0ebfdd1 commit fc9c9c3

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

djangofiles/frisbeer/views.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
from django import forms
44
from django.db import transaction
5-
from django.http import Http404, HttpResponseBadRequest
5+
from django.http import HttpResponseBadRequest
66
from django.shortcuts import render, get_object_or_404, redirect
77
from django.urls import reverse
88
from django.views.generic import FormView, ListView
99
from rest_framework import viewsets, mixins
1010
from rest_framework.decorators import detail_route
11-
from rest_framework.exceptions import ValidationError, APIException
11+
from rest_framework.exceptions import ValidationError, APIException, PermissionDenied
1212
from rest_framework.viewsets import GenericViewSet
1313

1414
from frisbeer.models import *
@@ -78,6 +78,11 @@ def create_teams(self, request, pk=None):
7878
print("Created")
7979
return redirect(reverse("frisbeer:games-detail", args=[pk]))
8080

81+
def destroy(self, request, *args, **kwargs):
82+
if request.user and not request.user.is_superuser and self.get_object().players.count() > 0:
83+
raise PermissionDenied("Only admins can delete games with players in them")
84+
return super().destroy(request, *args, **kwargs)
85+
8186

8287
class LocationViewSet(viewsets.ModelViewSet):
8388
queryset = Location.objects.all()

0 commit comments

Comments
 (0)