From e69ba27ff454455c5ed54d61f5b4dc5df3127441 Mon Sep 17 00:00:00 2001 From: Bai Date: Fri, 24 Feb 2023 11:27:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E8=B5=84=E4=BA=A7=E8=AF=A6=E6=83=85=E6=97=B6?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=20spec=5Finfo=20=E5=AD=97=E6=AE=B5,=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=BF=9E=E6=8E=A5=20Magnus=20=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/api/user_permission/assets.py | 6 ++++++ apps/perms/serializers/user_permission.py | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/perms/api/user_permission/assets.py b/apps/perms/api/user_permission/assets.py index 0daa23791..f94854164 100644 --- a/apps/perms/api/user_permission/assets.py +++ b/apps/perms/api/user_permission/assets.py @@ -30,6 +30,12 @@ class BaseUserPermedAssetsApi(SelfOrPKUserMixin, ListAPIView): filterset_class = AssetFilterSet serializer_class = serializers.AssetPermedSerializer + def get_serializer_class(self): + serializer_class = super().get_serializer_class() + if self.request.query_params.get('id'): + serializer_class = serializers.AssetPermedDetailSerializer + return serializer_class + def get_queryset(self): if getattr(self, 'swagger_fake_view', False): return Asset.objects.none() diff --git a/apps/perms/serializers/user_permission.py b/apps/perms/serializers/user_permission.py index 34143d936..c9582cc11 100644 --- a/apps/perms/serializers/user_permission.py +++ b/apps/perms/serializers/user_permission.py @@ -15,7 +15,7 @@ from perms.serializers.permission import ActionChoicesField __all__ = [ 'NodePermedSerializer', 'AssetPermedSerializer', - 'AccountsPermedSerializer' + 'AssetPermedDetailSerializer', 'AccountsPermedSerializer' ] @@ -46,6 +46,12 @@ class AssetPermedSerializer(OrgResourceModelSerializerMixin): return queryset +class AssetPermedDetailSerializer(AssetPermedSerializer): + class Meta(AssetPermedSerializer.Meta): + fields = AssetPermedSerializer.Meta.fields + ['spec_info'] + read_only_fields = fields + + class NodePermedSerializer(serializers.ModelSerializer): class Meta: model = Node