From aef9bb23059845f756a0c7f20080489b3a624f5f Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 25 Nov 2020 16:12:11 +0800 Subject: [PATCH] =?UTF-8?q?fix(assets):=20=E5=8A=A8=E6=80=81=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=94=A8=E6=88=B7=E5=92=8C=E7=94=A8=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E5=8F=98=E5=8C=96=E6=97=B6=E6=B2=A1=E6=9C=89=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E5=88=B0=E8=B5=84=E4=BA=A7=20(#5091)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: xinwen --- apps/assets/signals_handler.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/assets/signals_handler.py b/apps/assets/signals_handler.py index 1c2813aa9..4bcff8a5a 100644 --- a/apps/assets/signals_handler.py +++ b/apps/assets/signals_handler.py @@ -91,22 +91,24 @@ def on_system_user_assets_change(instance, action, model, pk_set, **kwargs): @receiver(m2m_changed, sender=SystemUser.users.through) -def on_system_user_users_change(sender, instance=None, action='', model=None, pk_set=None, **kwargs): +def on_system_user_users_change(sender, instance: SystemUser, action, model, pk_set, reverse, **kwargs): """ 当系统用户和用户关系发生变化时,应该重新推送系统用户资产中 """ if action != POST_ADD: return + + if reverse: + raise M2MReverseNotAllowed + if not instance.username_same_with_user: return + logger.debug("System user users change signal recv: {}".format(instance)) - queryset = model.objects.filter(pk__in=pk_set) - if model == SystemUser: - system_users = queryset - else: - system_users = [instance] - for s in system_users: - push_system_user_to_assets_manual.delay(s) + usernames = model.objects.filter(pk__in=pk_set).values_list('username', flat=True) + + for username in usernames: + push_system_user_to_assets_manual.delay(instance, username) @receiver(m2m_changed, sender=SystemUser.nodes.through)