mirror of https://github.com/jumpserver/jumpserver
parent
4c7c8f482d
commit
4654756966
|
@ -68,7 +68,7 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer):
|
|||
|
||||
@staticmethod
|
||||
def from_template_if_need(initial_data):
|
||||
template_id = initial_data.pop('template', None)
|
||||
template_id = initial_data.get('template')
|
||||
if not template_id:
|
||||
return
|
||||
if isinstance(template_id, (str, uuid.UUID)):
|
||||
|
@ -84,7 +84,7 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer):
|
|||
field.name for field in template._meta.fields
|
||||
if field.name not in ignore_fields
|
||||
]
|
||||
attrs = {'source': Source.TEMPLATE, 'source_id': str(template.id)}
|
||||
attrs = {}
|
||||
for name in field_names:
|
||||
value = getattr(template, name, None)
|
||||
if value is None:
|
||||
|
@ -139,9 +139,10 @@ class AccountCreateUpdateSerializerMixin(serializers.Serializer):
|
|||
if self.instance:
|
||||
return attrs
|
||||
|
||||
if 'source' in self.initial_data:
|
||||
attrs['source'] = self.initial_data['source']
|
||||
attrs['source_id'] = self.initial_data['source_id']
|
||||
template = attrs.pop('template', None)
|
||||
if template:
|
||||
attrs['source'] = Source.TEMPLATE
|
||||
attrs['source_id'] = str(template.id)
|
||||
return attrs
|
||||
|
||||
def create(self, validated_data):
|
||||
|
|
|
@ -67,6 +67,26 @@ class AssetPlatformSerializer(serializers.ModelSerializer):
|
|||
class AssetAccountSerializer(AccountSerializer):
|
||||
add_org_fields = False
|
||||
asset = serializers.PrimaryKeyRelatedField(queryset=Asset.objects, required=False, write_only=True)
|
||||
clone_id: str
|
||||
|
||||
def to_internal_value(self, data):
|
||||
clone_id = data.pop('id', None)
|
||||
ret = super().to_internal_value(data)
|
||||
self.clone_id = clone_id
|
||||
return ret
|
||||
|
||||
def set_secret(self, attrs):
|
||||
_id = self.clone_id
|
||||
if not _id:
|
||||
return attrs
|
||||
|
||||
account = Account.objects.get(id=_id)
|
||||
attrs['secret'] = account.secret
|
||||
return attrs
|
||||
|
||||
def validate(self, attrs):
|
||||
attrs = super().validate(attrs)
|
||||
return self.set_secret(attrs)
|
||||
|
||||
class Meta(AccountSerializer.Meta):
|
||||
fields = [
|
||||
|
|
Loading…
Reference in New Issue