fix: Account tempale cannot push params (#13671)

Co-authored-by: feng <1304903146@qq.com>
pull/13680/head
fit2bot 2024-07-09 19:12:24 +08:00 committed by GitHub
parent bb6d077645
commit cf727d22c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 4 deletions

View File

@ -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'
]

View File

@ -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
)