From 202e619c4ba43f37986ccc52d91e8b432ec840ed Mon Sep 17 00:00:00 2001 From: xinwen Date: Mon, 9 Nov 2020 19:17:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(assets):=20=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E7=94=A8=E6=88=B7=E8=B5=84=E4=BA=A7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/system_user.py | 17 ++++++++++++++++- apps/assets/urls/api_urls.py | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/assets/api/system_user.py b/apps/assets/api/system_user.py index ff3f81f36..59be0fa68 100644 --- a/apps/assets/api/system_user.py +++ b/apps/assets/api/system_user.py @@ -19,7 +19,7 @@ from ..tasks import ( logger = get_logger(__file__) __all__ = [ 'SystemUserViewSet', 'SystemUserAuthInfoApi', 'SystemUserAssetAuthInfoApi', - 'SystemUserCommandFilterRuleListApi', 'SystemUserTaskApi', + 'SystemUserCommandFilterRuleListApi', 'SystemUserTaskApi', 'SystemUserAssetsListView', ] @@ -125,3 +125,18 @@ class SystemUserCommandFilterRuleListApi(generics.ListAPIView): pk = self.kwargs.get('pk', None) system_user = get_object_or_404(SystemUser, pk=pk) return system_user.cmd_filter_rules + + +class SystemUserAssetsListView(generics.ListAPIView): + permission_classes = (IsOrgAdmin,) + serializer_class = serializers.AssetSimpleSerializer + filter_fields = ("hostname", "ip") + search_fields = filter_fields + + def get_object(self): + pk = self.kwargs.get('pk') + return get_object_or_404(SystemUser, pk=pk) + + def get_queryset(self): + system_user = self.get_object() + return system_user.get_all_assets() diff --git a/apps/assets/urls/api_urls.py b/apps/assets/urls/api_urls.py index 3df73d219..d81520b65 100644 --- a/apps/assets/urls/api_urls.py +++ b/apps/assets/urls/api_urls.py @@ -45,6 +45,7 @@ urlpatterns = [ path('admin-users//assets/', api.AdminUserAssetsListView.as_view(), name='admin-user-assets'), path('system-users//auth-info/', api.SystemUserAuthInfoApi.as_view(), name='system-user-auth-info'), + path('system-users//assets/', api.SystemUserAssetsListView.as_view(), name='system-user-assets'), path('system-users//assets//auth-info/', api.SystemUserAssetAuthInfoApi.as_view(), name='system-user-asset-auth-info'), path('system-users//tasks/', api.SystemUserTaskApi.as_view(), name='system-user-task-create'), path('system-users//cmd-filter-rules/', api.SystemUserCommandFilterRuleListApi.as_view(), name='system-user-cmd-filter-rule-list'),