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