mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Python
		
	
	
# -*- coding: utf-8 -*-
 | 
						|
#
 | 
						|
 | 
						|
from celery import shared_task
 | 
						|
 | 
						|
from orgs.utils import tmp_to_root_org
 | 
						|
from assets.models import AuthBook
 | 
						|
 | 
						|
__all__ = ['add_nodes_assets_to_system_users']
 | 
						|
 | 
						|
 | 
						|
@shared_task
 | 
						|
@tmp_to_root_org()
 | 
						|
def add_nodes_assets_to_system_users(nodes_keys, system_users):
 | 
						|
    from ..models import Node
 | 
						|
    nodes = Node.objects.filter(key__in=nodes_keys)
 | 
						|
    assets = Node.get_nodes_all_assets(*nodes)
 | 
						|
    for system_user in system_users:
 | 
						|
        """ 解决资产和节点进行关联时,已经关联过的节点不会触发 authbook post_save 信号, 
 | 
						|
        无法更新节点下所有资产的管理用户的问题 """
 | 
						|
        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
 | 
						|
            )
 | 
						|
            # 只要关联都需要更新资产的管理用户
 | 
						|
            instance.update_asset_admin_user_if_need()
 |