From cf727d22c03a0acd97b8d9e74213ef41c7f9d9f1 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 9 Jul 2024 19:12:24 +0800 Subject: [PATCH] fix: Account tempale cannot push params (#13671) Co-authored-by: feng <1304903146@qq.com> --- apps/accounts/serializers/account/account.py | 9 ++++++--- apps/assets/serializers/asset/common.py | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/accounts/serializers/account/account.py b/apps/accounts/serializers/account/account.py index a885de52b..82991731c 100644 --- a/apps/accounts/serializers/account/account.py +++ b/apps/accounts/serializers/account/account.py @@ -81,7 +81,7 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer): def get_template_attr_for_account(template): # Set initial data from template field_names = [ - 'name', 'username', 'secret', + 'name', 'username', 'secret', 'push_params', 'secret_type', 'privileged', 'is_active' ] @@ -90,7 +90,10 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer): value = getattr(template, name, None) if value is None: continue - attrs[name] = value + if name == 'push_params': + attrs['params'] = value + else: + attrs[name] = value attrs['secret'] = template.get_secret() return attrs @@ -225,7 +228,7 @@ class AccountSerializer(AccountCreateUpdateSerializerMixin, BaseAccountSerialize fields = BaseAccountSerializer.Meta.fields + [ 'su_from', 'asset', 'version', 'source', 'source_id', 'connectivity', - ] + list(set(AccountCreateUpdateSerializerMixin.Meta.fields) - {'params'}) + ] + AccountCreateUpdateSerializerMixin.Meta.fields read_only_fields = BaseAccountSerializer.Meta.read_only_fields + [ 'connectivity' ] diff --git a/apps/assets/serializers/asset/common.py b/apps/assets/serializers/asset/common.py index 98f2066ad..5303c029a 100644 --- a/apps/assets/serializers/asset/common.py +++ b/apps/assets/serializers/asset/common.py @@ -323,7 +323,9 @@ class AssetSerializer(BulkOrgResourceModelSerializer, ResourceLabelsMixin, Writa template_id = data.get('template', None) if template_id: template = AccountTemplate.objects.get(id=template_id) - if template and template.su_from: + template.push_params = data.pop('push_params', {}) + data['params'] = template.push_params + if template.su_from: su_from_name_username_secret_type_map[template.name] = ( template.su_from.username, template.su_from.secret_type )