from rest_framework import generics, permissions, mixins from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator from .models import * from .filters import * from .actions import * from .serializers import * from .permissions import * from users.models import * from users.serializers import * @method_decorator(csrf_exempt, name='dispatch') class ProvincesView(generics.ListCreateAPIView): permission_classes = (IsSuperUserOrReadOnly,) queryset = Province.objects.all() serializer_class = ProvinceSerializer @method_decorator(csrf_exempt, name='dispatch') class ProvinceView(generics.RetrieveUpdateDestroyAPIView): permission_classes = (IsSuperUserOrReadOnly,) queryset = Province.objects.all() serializer_class = ProvinceSerializer @method_decorator(csrf_exempt, name='dispatch') class AssaultTroopsView(generics.ListCreateAPIView): permission_classes = (IsSuperUserOrReadOnly,) queryset = AssaultTroop.objects.all() serializer_class = AssaultTroopSerializer @method_decorator(csrf_exempt, name='dispatch') class AssaultTroopView(generics.RetrieveUpdateDestroyAPIView): permission_classes = (IsSuperUserOrReadOnly,) queryset = AssaultTroop.objects.all() serializer_class = AssaultTroopSerializer @method_decorator(csrf_exempt, name='dispatch') class PlayersView(generics.ListCreateAPIView): permission_classes = (IsStaff,) # Only Staff can see player info, i.e. authorized servers queryset = Player.objects.all() serializer_class = PlayerSerializer @method_decorator(csrf_exempt, name='dispatch') class PlayerView(generics.RetrieveUpdateDestroyAPIView): permission_classes = (IsStaff,) queryset = Player.objects.all() serializer_class = PlayerSerializer @method_decorator(csrf_exempt, name='dispatch') class ServersView(generics.ListCreateAPIView): permission_classes = (IsSuperUserOrReadOnly,) queryset = Server.objects.all() serializer_class = ServerSerializer @method_decorator(csrf_exempt, name='dispatch') class ServerView(generics.RetrieveUpdateDestroyAPIView): permission_classes = (IsSuperUserOrReadOnly,) queryset = Server.objects.all() serializer_class = ServerSerializer @method_decorator(csrf_exempt, name='dispatch') class UserDatumView(generics.RetrieveUpdateDestroyAPIView): permission_classes = (IsSuperUser,) queryset = UserData.objects.all() serializer_class = UserDataSerializer # filter_backends = [UserDataFilterBackend] @method_decorator(csrf_exempt, name='dispatch') class UserDataView(generics.ListCreateAPIView): permission_classes = (IsSuperUserOrAuthReadOnly,) queryset = UserData.objects.all() serializer_class = UserDataSerializer filter_backends = [UserDataFilterBackend] @method_decorator(csrf_exempt, name='dispatch') class UserActionView(mixins.CreateModelMixin, generics.GenericAPIView): permission_classes = (permissions.IsAuthenticated,) queryset = UserAction.objects.all() serializer_class = UserActionSerializer def post(self, request, *args, **kwargs): process_action(request) return self.create(request, *args, **kwargs)