mirror of https://github.com/jumpserver/jumpserver
feat: 修改 Permission filter 方法名
parent
286d0e4ac1
commit
65b942ffa4
|
@ -163,7 +163,7 @@ class UserGrantedAssetAccounts(ListAPIView):
|
|||
|
||||
def get_queryset(self):
|
||||
# 获取用户-资产的授权规则
|
||||
assetperms = AssetPermission.filter_permissions(self.user, self.asset)
|
||||
assetperms = AssetPermission.filter(self.user, self.asset)
|
||||
account_names = AssetPermission.get_account_names(assetperms)
|
||||
accounts = self.asset.filter_accounts(account_names)
|
||||
# 构造默认包含的账号,如: @INPUT @USER
|
||||
|
|
|
@ -232,17 +232,17 @@ class AssetPermission(OrgModelMixin):
|
|||
return account_names
|
||||
|
||||
@classmethod
|
||||
def filter_permissions(cls, user=None, asset=None, account=None):
|
||||
def filter(cls, user=None, asset=None, account=None):
|
||||
""" 获取同时包含 用户-资产-账号 的授权规则 """
|
||||
assetperm_ids = []
|
||||
if user:
|
||||
user_assetperm_ids = cls.filter_permissions_by_user(user, flat=True)
|
||||
user_assetperm_ids = cls.filter_by_user(user, flat=True)
|
||||
assetperm_ids.append(user_assetperm_ids)
|
||||
if asset:
|
||||
asset_assetperm_ids = cls.filter_permissions_by_asset(asset, flat=True)
|
||||
asset_assetperm_ids = cls.filter_by_asset(asset, flat=True)
|
||||
assetperm_ids.append(asset_assetperm_ids)
|
||||
if account:
|
||||
account_assetperm_ids = cls.filter_permissions_by_account(account, flat=True)
|
||||
account_assetperm_ids = cls.filter_by_account(account, flat=True)
|
||||
assetperm_ids.append(account_assetperm_ids)
|
||||
# & 是同时满足,比如有用户,但是用户的规则是空,那么返回也应该是空
|
||||
assetperm_ids = list(reduce(lambda x, y: set(x) & set(y), assetperm_ids))
|
||||
|
@ -250,7 +250,7 @@ class AssetPermission(OrgModelMixin):
|
|||
return assetperms
|
||||
|
||||
@classmethod
|
||||
def filter_permissions_by_user(cls, user, with_group=True, flat=False):
|
||||
def filter_by_user(cls, user, with_group=True, flat=False):
|
||||
assetperm_ids = set()
|
||||
user_assetperm_ids = AssetPermission.users.through.objects \
|
||||
.filter(user_id=user.id) \
|
||||
|
@ -273,7 +273,7 @@ class AssetPermission(OrgModelMixin):
|
|||
return assetperms
|
||||
|
||||
@classmethod
|
||||
def filter_permissions_by_asset(cls, asset, with_node=True, flat=False):
|
||||
def filter_by_asset(cls, asset, with_node=True, flat=False):
|
||||
assetperm_ids = set()
|
||||
asset_assetperm_ids = AssetPermission.assets.through.objects \
|
||||
.filter(asset_id=asset.id) \
|
||||
|
@ -294,7 +294,7 @@ class AssetPermission(OrgModelMixin):
|
|||
return assetperms
|
||||
|
||||
@classmethod
|
||||
def filter_permissions_by_account(cls, account, flat=False):
|
||||
def filter_by_account(cls, account, flat=False):
|
||||
assetperms = cls.objects.filter(accounts__contains=account).valid()
|
||||
if flat:
|
||||
assetperm_ids = assetperms.values_list('id', flat=True)
|
||||
|
|
Loading…
Reference in New Issue