Completed
Pull Request — master (#16)
by
unknown
01:35
created

GroupFieldViewSet.create()   A

Complexity

Conditions 3

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 3
dl 0
loc 9
rs 9.6666
1
from django.http import Http404, HttpResponseForbidden
2
3
from rest_framework import viewsets, decorators, status, mixins
4
from rest_framework.response import Response
5
from rest_framework.permissions import IsAuthenticated
6
from dry_rest_permissions.generics import DRYPermissions
7
8
from sigma_core.models.group_field import GroupField
9
from sigma_core.serializers.group_field import GroupFieldSerializer, GroupFieldCreateSerializer
10
11
12
class GroupFieldViewSet(viewsets.ModelViewSet):
13
    queryset = GroupField.objects.all()
14
    serializer_class = GroupFieldSerializer
15
    permission_classes = [IsAuthenticated, DRYPermissions, ]
16
    filter_fields = ('name', )
17
18
    def create(self, request):
19
        serializer = GroupFieldCreateSerializer(data=request.data)
20
        if not serializer.is_valid():
21
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
22
        if not request.user.is_group_admin(serializer.validated_data.get('group')):
23
            return Response('Not group administrator', status=status.HTTP_403_FORBIDDEN)
24
25
        serializer.save()
26
        return Response(serializer.data, status=status.HTTP_201_CREATED)
27