| @@ 48-58 (lines=11) @@ | ||
| 45 | # But can always see your own custom fields |
|
| 46 | return self.queryset.filter(Q(membership__group__in=my_groups) | Q(membership__user=self.request.user.id)) |
|
| 47 | ||
| 48 | def create(self, request): |
|
| 49 | serializer = GroupMemberValueSerializer(data=request.data) |
|
| 50 | if not serializer.is_valid(): |
|
| 51 | return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
|
| 52 | mship = serializer.validated_data.get('membership') |
|
| 53 | # Only Sigma admins can create values for other members |
|
| 54 | if mship.user != request.user and not request.user.is_sigma_admin(): |
|
| 55 | return Response(status=status.HTTP_400_BAD_REQUEST) |
|
| 56 | ||
| 57 | serializer.save() |
|
| 58 | return Response(serializer.data, status=status.HTTP_201_CREATED) |
|
| 59 | ||
| @@ 35-43 (lines=9) @@ | ||
| 32 | #my_groups = Group.objects.filter(memberships__user=self.request.user.id) |
|
| 33 | return self.queryset.filter(group__in=my_groups) |
|
| 34 | ||
| 35 | def create(self, request): |
|
| 36 | serializer = GroupFieldSerializer(data=request.data) |
|
| 37 | if not serializer.is_valid(): |
|
| 38 | return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
|
| 39 | if not request.user.has_group_admin_perm(serializer.validated_data.get('group')): |
|
| 40 | return Response('Not group administrator', status=status.HTTP_403_FORBIDDEN) |
|
| 41 | ||
| 42 | serializer.save() |
|
| 43 | return Response(serializer.data, status=status.HTTP_201_CREATED) |
|
| 44 | ||
| 45 | @decorators.detail_route(methods=['post']) |
|
| 46 | def validate(self, request, pk): |
|