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