diff --git a/cookbook/serializer.py b/cookbook/serializer.py index edcc8d499..f93529e51 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -135,10 +135,13 @@ class UserNameSerializer(WritableNestedModelSerializer): fields = ('id', 'username') -class GroupSerializer(WritableNestedModelSerializer): +class GroupSerializer(UniqueFieldsMixin, WritableNestedModelSerializer): def create(self, validated_data): raise ValidationError('Cannot create using this endpoint') + def update(self, instance, validated_data): + return instance # cannot update group + class Meta: model = Group fields = ('id', 'name') @@ -170,8 +173,9 @@ class SpaceSerializer(serializers.ModelSerializer): read_only_fields = ('id', 'created_by', 'created_at', 'message', 'max_recipes', 'max_file_storage_mb', 'max_users', 'allow_sharing', 'demo',) -class UserSpaceSerializer(serializers.ModelSerializer): +class UserSpaceSerializer(WritableNestedModelSerializer): user = UserNameSerializer(read_only=True) + groups = GroupSerializer(many=True) def create(self, validated_data): raise ValidationError('Cannot create using this endpoint') diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 0c21294e8..3fd70f138 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -386,7 +386,7 @@ class UserSpaceViewSet(viewsets.ModelViewSet): queryset = UserSpace.objects serializer_class = UserSpaceSerializer permission_classes = [CustomIsSpaceOwner] - http_method_names = ['get', 'patch', 'delete'] + http_method_names = ['get', 'patch', 'put', 'delete'] def get_queryset(self): return self.queryset.filter(space=self.request.space) diff --git a/vue/src/apps/SpaceManageView/SpaceManageView.vue b/vue/src/apps/SpaceManageView/SpaceManageView.vue index e365829ee..db60f6a0e 100644 --- a/vue/src/apps/SpaceManageView/SpaceManageView.vue +++ b/vue/src/apps/SpaceManageView/SpaceManageView.vue @@ -27,7 +27,7 @@