From 714c44fbf4455f651f0dc5e4e863d26c90a2ca49 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:28:48 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=8E=88=E6=9D=83=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=97=B6=20=E9=80=9A=E8=BF=87=E6=A8=A1=E7=89=88=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=B4=A6=E5=8F=B7=20=E7=BB=99=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9D=A5=E6=BA=90=20(#12345)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/perms/serializers/permission.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/perms/serializers/permission.py b/apps/perms/serializers/permission.py index 1e0384b1b..d09c33538 100644 --- a/apps/perms/serializers/permission.py +++ b/apps/perms/serializers/permission.py @@ -4,6 +4,7 @@ from django.db.models import Q from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +from accounts.const import Source from accounts.models import AccountTemplate, Account from accounts.tasks import push_accounts_to_assets_task from assets.models import Asset, Node @@ -85,6 +86,7 @@ class AssetPermissionSerializer(ResourceLabelsMixin, BulkOrgResourceModelSeriali ] for asset in assets: asset_exist_accounts = Account.objects.none() + asset_exist_account_names = asset.accounts.values_list('name', flat=True) for template in self.template_accounts: asset_exist_accounts |= asset.accounts.filter( username=template.username, @@ -96,11 +98,13 @@ class AssetPermissionSerializer(ResourceLabelsMixin, BulkOrgResourceModelSeriali 'username': template.username, 'secret_type': template.secret_type } - if condition in username_secret_type_dict: + if condition in username_secret_type_dict or \ + template.name in asset_exist_account_names: continue account_data = {key: getattr(template, key) for key in account_attribute} account_data['su_from'] = template.get_su_from_account(asset) - account_data['name'] = f"{account_data['name']}-{_('Account template')}" + account_data['source'] = Source.TEMPLATE + account_data['source_id'] = str(template.id) need_create_accounts.append(Account(**{'asset_id': asset.id, **account_data})) return Account.objects.bulk_create(need_create_accounts)