From 27588f48d8d464a2cb95952587158f119e7532f0 Mon Sep 17 00:00:00 2001 From: xinwen Date: Tue, 14 Dec 2021 16:00:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20authbook=20=E5=88=9B=E5=BB=BA=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E6=B2=A1=E6=9C=89=E8=87=AA=E5=8A=A8=E6=8E=A8?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/tasks/common.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/assets/tasks/common.py b/apps/assets/tasks/common.py index 06b656e24..b6c2326e9 100644 --- a/apps/assets/tasks/common.py +++ b/apps/assets/tasks/common.py @@ -13,16 +13,24 @@ __all__ = ['add_nodes_assets_to_system_users'] @tmp_to_root_org() def add_nodes_assets_to_system_users(nodes_keys, system_users): from ..models import Node + from assets.tasks import push_system_user_to_assets + nodes = Node.objects.filter(key__in=nodes_keys) assets = Node.get_nodes_all_assets(*nodes) for system_user in system_users: """ 解决资产和节点进行关联时,已经关联过的节点不会触发 authbook post_save 信号, 无法更新节点下所有资产的管理用户的问题 """ + need_push_asset_ids = [] for asset in assets: defaults = {'asset': asset, 'systemuser': system_user, 'org_id': asset.org_id} instance, created = AuthBook.objects.update_or_create( defaults=defaults, asset=asset, systemuser=system_user ) + if created: + need_push_asset_ids.append(asset.id) # # 不再自动更新资产管理用户,只允许用户手动指定。 # 只要关联都需要更新资产的管理用户 # instance.update_asset_admin_user_if_need() + + if need_push_asset_ids: + push_system_user_to_assets.delay(system_user.id, need_push_asset_ids)