mirror of https://github.com/jumpserver/jumpserver
feat: 添加API获取授权规则授权的所有账号列表
parent
0c15ac71f6
commit
0728868af2
|
@ -10,11 +10,13 @@ from orgs.utils import current_org
|
|||
from perms import serializers
|
||||
from perms import models
|
||||
from perms.utils.user_permission import UserGrantedAssetsQueryUtils
|
||||
from assets.serializers import AccountSerializer
|
||||
|
||||
__all__ = [
|
||||
'AssetPermissionUserRelationViewSet', 'AssetPermissionUserGroupRelationViewSet',
|
||||
'AssetPermissionAssetRelationViewSet', 'AssetPermissionNodeRelationViewSet',
|
||||
'AssetPermissionAllAssetListApi', 'AssetPermissionAllUserListApi',
|
||||
'AssetPermissionAccountListApi',
|
||||
]
|
||||
|
||||
|
||||
|
@ -111,3 +113,16 @@ class AssetPermissionNodeRelationViewSet(RelationMixin):
|
|||
queryset = queryset.annotate(node_key=F('node__key'))
|
||||
return queryset
|
||||
|
||||
|
||||
class AssetPermissionAccountListApi(generics.ListAPIView):
|
||||
serializer_class = AccountSerializer
|
||||
filterset_fields = ("name", "username", "privileged", "version")
|
||||
search_fields = filterset_fields
|
||||
|
||||
def get_queryset(self):
|
||||
pk = self.kwargs.get("pk")
|
||||
perm = get_object_or_404(models.AssetPermission, pk=pk)
|
||||
accounts = perm.get_all_accounts()
|
||||
return accounts
|
||||
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ class AssetPermission(OrgModelMixin):
|
|||
q = Q(asset_id__in=asset_ids)
|
||||
if not self.is_perm_all_accounts:
|
||||
q &= Q(username__in=self.accounts)
|
||||
accounts = Account.objects.filter(q)
|
||||
accounts = Account.objects.filter(q).order_by('asset__name', 'name', 'username')
|
||||
if not flat:
|
||||
return accounts
|
||||
return accounts.values_list('id', flat=True)
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from common.drf.serializers import BulkSerializerMixin
|
||||
from assets.models import Asset, Node
|
||||
from perms.models import AssetPermission
|
||||
from users.models import User
|
||||
|
||||
__all__ = [
|
||||
'AssetPermissionUserRelationSerializer',
|
||||
|
|
|
@ -84,6 +84,7 @@ permission_urlpatterns = [
|
|||
# 授权规则中授权的资产
|
||||
path('<uuid:pk>/assets/all/', api.AssetPermissionAllAssetListApi.as_view(), name='asset-permission-all-assets'),
|
||||
path('<uuid:pk>/users/all/', api.AssetPermissionAllUserListApi.as_view(), name='asset-permission-all-users'),
|
||||
path('<uuid:pk>/accounts/', api.AssetPermissionAccountListApi.as_view(), name='asset-permission-accounts'),
|
||||
]
|
||||
|
||||
asset_permission_urlpatterns = [
|
||||
|
|
Loading…
Reference in New Issue