mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
# -*- coding: utf-8 -*-
 | 
						|
#
 | 
						|
 | 
						|
from assets.models import Asset
 | 
						|
 | 
						|
from ..base import BaseBackend
 | 
						|
from .utils import construct_authbook_object
 | 
						|
 | 
						|
 | 
						|
class AdminUserBackend(BaseBackend):
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def filter(cls, username=None, asset=None, **kwargs):
 | 
						|
        instances = cls.construct_authbook_objects(username, asset)
 | 
						|
        return instances
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def _get_assets(cls, asset):
 | 
						|
        if not asset:
 | 
						|
            assets = Asset.objects.all().prefetch_related('admin_user')
 | 
						|
        else:
 | 
						|
            assets = [asset]
 | 
						|
        return assets
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def construct_authbook_objects(cls, username, asset):
 | 
						|
        instances = []
 | 
						|
        assets = cls._get_assets(asset)
 | 
						|
        for asset in assets:
 | 
						|
            if username and asset.admin_user.username != username:
 | 
						|
                continue
 | 
						|
            instance = construct_authbook_object(asset.admin_user, asset)
 | 
						|
            instances.append(instance)
 | 
						|
        return instances
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def create(cls, **kwargs):
 | 
						|
        raise cls.NotSupportError("Not support create")
 |