mirror of https://github.com/jumpserver/jumpserver
perf: account serializer
parent
8b05bc4b82
commit
1981bdd3ac
|
@ -3,6 +3,7 @@ from rest_framework import serializers
|
|||
|
||||
from common.drf.serializers import SecretReadableMixin
|
||||
from common.drf.fields import ObjectRelatedField
|
||||
from assets.tasks import push_accounts_to_assets
|
||||
from assets.models import Account, AccountTemplate, Asset
|
||||
from .base import BaseAccountSerializer
|
||||
|
||||
|
@ -47,8 +48,7 @@ class AccountSerializerCreateMixin(serializers.ModelSerializer):
|
|||
def create(self, validated_data):
|
||||
instance = super().create(validated_data)
|
||||
if self.push_now:
|
||||
# Todo: push it
|
||||
print("Start push account to asset")
|
||||
push_accounts_to_assets.delay([instance.id], [instance.asset_id])
|
||||
return instance
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
from assets.models import AccountTemplate
|
||||
from .base import BaseAccountSerializer
|
||||
|
||||
|
@ -9,15 +6,14 @@ class AccountTemplateSerializer(BaseAccountSerializer):
|
|||
class Meta(BaseAccountSerializer.Meta):
|
||||
model = AccountTemplate
|
||||
|
||||
@classmethod
|
||||
def validate_required(cls, attrs):
|
||||
# Todo: why ?
|
||||
required_field_dict = {}
|
||||
error = _('This field is required.')
|
||||
for k, v in cls().fields.items():
|
||||
if v.required and k not in attrs:
|
||||
required_field_dict[k] = error
|
||||
if not required_field_dict:
|
||||
return
|
||||
raise serializers.ValidationError(required_field_dict)
|
||||
|
||||
# @classmethod
|
||||
# def validate_required(cls, attrs):
|
||||
# # TODO 选择模版后检查一些必填项
|
||||
# required_field_dict = {}
|
||||
# error = _('This field is required.')
|
||||
# for k, v in cls().fields.items():
|
||||
# if v.required and k not in attrs:
|
||||
# required_field_dict[k] = error
|
||||
# if not required_field_dict:
|
||||
# return
|
||||
# raise serializers.ValidationError(required_field_dict)
|
||||
|
|
|
@ -11,8 +11,9 @@ __all__ = [
|
|||
|
||||
|
||||
@org_aware_func("assets")
|
||||
def push_accounts_to_assets_util(accounts, assets, task_name):
|
||||
def push_accounts_to_assets_util(accounts, assets):
|
||||
from assets.models import PushAccountAutomation
|
||||
task_name = gettext_noop("Push accounts to assets")
|
||||
task_name = PushAccountAutomation.generate_unique_name(task_name)
|
||||
account_usernames = list(accounts.values_list('username', flat=True))
|
||||
|
||||
|
@ -33,5 +34,4 @@ def push_accounts_to_assets(account_ids, asset_ids):
|
|||
assets = Asset.objects.get(id=asset_ids)
|
||||
accounts = Account.objects.get(id=account_ids)
|
||||
|
||||
task_name = gettext_noop("Push accounts to assets")
|
||||
return push_accounts_to_assets_util(accounts, assets, task_name)
|
||||
return push_accounts_to_assets_util(accounts, assets)
|
||||
|
|
Loading…
Reference in New Issue