mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-23 12:29:47 +00:00
perf: account template secret (#9368)
Co-authored-by: feng <1304903146@qq.com>
This commit is contained in:
@@ -10,7 +10,25 @@ from common.serializers import SecretReadableMixin, BulkModelSerializer
|
||||
from .base import BaseAccountSerializer
|
||||
|
||||
|
||||
class AccountSerializerCreateMixin(BulkModelSerializer):
|
||||
class AccountSerializerCreateValidateMixin:
|
||||
replace_attrs: callable
|
||||
push_now: bool
|
||||
|
||||
def validate(self, attrs):
|
||||
_id = attrs.pop('id', None)
|
||||
if _id:
|
||||
account_template = AccountTemplate.objects.get(id=_id)
|
||||
attrs['secret'] = account_template.secret
|
||||
account_template = attrs.pop('template', None)
|
||||
if account_template:
|
||||
self.replace_attrs(account_template, attrs)
|
||||
self.push_now = attrs.pop('push_now', False)
|
||||
return super().validate(attrs)
|
||||
|
||||
|
||||
class AccountSerializerCreateMixin(
|
||||
AccountSerializerCreateValidateMixin, BulkModelSerializer
|
||||
):
|
||||
template = serializers.UUIDField(
|
||||
required=False, allow_null=True, write_only=True,
|
||||
label=_('Account template')
|
||||
@@ -40,13 +58,6 @@ class AccountSerializerCreateMixin(BulkModelSerializer):
|
||||
for k, v in template_attrs.items():
|
||||
attrs.setdefault(k, v)
|
||||
|
||||
def validate(self, attrs):
|
||||
account_template = attrs.pop('template', None)
|
||||
if account_template:
|
||||
self.replace_attrs(account_template, attrs)
|
||||
self.push_now = attrs.pop('push_now', False)
|
||||
return super().validate(attrs)
|
||||
|
||||
def create(self, validated_data):
|
||||
instance = super().create(validated_data)
|
||||
if self.push_now:
|
||||
|
Reference in New Issue
Block a user