diff --git a/apps/applications/api/application.py b/apps/applications/api/application.py index bc37fbc35..cb51ff023 100644 --- a/apps/applications/api/application.py +++ b/apps/applications/api/application.py @@ -12,8 +12,8 @@ __all__ = ['ApplicationViewSet'] class ApplicationViewSet(OrgBulkModelViewSet): model = models.Application - filter_fields = ('name', 'type', 'category') - search_fields = filter_fields + filterset_fields = ('name', 'type', 'category') + search_fields = filterset_fields permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.ApplicationSerializer diff --git a/apps/assets/api/admin_user.py b/apps/assets/api/admin_user.py index 9893d014f..bdbae55dd 100644 --- a/apps/assets/api/admin_user.py +++ b/apps/assets/api/admin_user.py @@ -29,8 +29,8 @@ class AdminUserViewSet(OrgBulkModelViewSet): Admin user api set, for add,delete,update,list,retrieve resource """ model = AdminUser - filter_fields = ("name", "username") - search_fields = filter_fields + filterset_fields = ("name", "username") + search_fields = filterset_fields serializer_class = serializers.AdminUserSerializer permission_classes = (IsOrgAdmin,) @@ -93,8 +93,8 @@ class AdminUserTestConnectiveApi(generics.RetrieveAPIView): class AdminUserAssetsListView(generics.ListAPIView): permission_classes = (IsOrgAdmin,) serializer_class = serializers.AssetSimpleSerializer - filter_fields = ("hostname", "ip") - search_fields = filter_fields + filterset_fields = ("hostname", "ip") + search_fields = filterset_fields def get_object(self): pk = self.kwargs.get('pk') diff --git a/apps/assets/api/asset.py b/apps/assets/api/asset.py index d36246dd9..fb86dad40 100644 --- a/apps/assets/api/asset.py +++ b/apps/assets/api/asset.py @@ -32,7 +32,7 @@ class AssetViewSet(FilterAssetByNodeMixin, OrgBulkModelViewSet): API endpoint that allows Asset to be viewed or edited. """ model = Asset - filter_fields = ( + filterset_fields = ( "hostname", "ip", "systemuser__id", "admin_user__id", "platform__base", "is_active" ) @@ -76,7 +76,7 @@ class AssetPlatformViewSet(ModelViewSet): queryset = Platform.objects.all() permission_classes = (IsSuperUser,) serializer_class = serializers.PlatformSerializer - filter_fields = ['name', 'base'] + filterset_fields = ['name', 'base'] search_fields = ['name'] def get_permissions(self): diff --git a/apps/assets/api/asset_user.py b/apps/assets/api/asset_user.py index 932d5b77e..7c78f3f51 100644 --- a/apps/assets/api/asset_user.py +++ b/apps/assets/api/asset_user.py @@ -78,7 +78,7 @@ class AssetUserViewSet(CommonApiMixin, BulkModelViewSet): 'retrieve': serializers.AssetUserReadSerializer, } permission_classes = [IsOrgAdminOrAppUser] - filter_fields = [ + filterset_fields = [ "id", "ip", "hostname", "username", "asset_id", "node_id", "prefer", "prefer_id", @@ -131,7 +131,7 @@ class AssetUserTaskCreateAPI(generics.CreateAPIView): permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.AssetUserTaskSerializer filter_backends = AssetUserViewSet.filter_backends - filter_fields = AssetUserViewSet.filter_fields + filterset_fields = AssetUserViewSet.filterset_fields def get_asset_users(self): manager = AssetUserManager() diff --git a/apps/assets/api/cmd_filter.py b/apps/assets/api/cmd_filter.py index b4ae67c72..95aac8af9 100644 --- a/apps/assets/api/cmd_filter.py +++ b/apps/assets/api/cmd_filter.py @@ -14,16 +14,16 @@ __all__ = ['CommandFilterViewSet', 'CommandFilterRuleViewSet'] class CommandFilterViewSet(OrgBulkModelViewSet): model = CommandFilter - filter_fields = ("name",) - search_fields = filter_fields + filterset_fields = ("name",) + search_fields = filterset_fields permission_classes = (IsOrgAdmin,) serializer_class = serializers.CommandFilterSerializer class CommandFilterRuleViewSet(OrgBulkModelViewSet): model = CommandFilterRule - filter_fields = ("content",) - search_fields = filter_fields + filterset_fields = ("content",) + search_fields = filterset_fields permission_classes = (IsOrgAdmin,) serializer_class = serializers.CommandFilterRuleSerializer diff --git a/apps/assets/api/domain.py b/apps/assets/api/domain.py index 7c32883d8..d444aa2ff 100644 --- a/apps/assets/api/domain.py +++ b/apps/assets/api/domain.py @@ -18,8 +18,8 @@ __all__ = ['DomainViewSet', 'GatewayViewSet', "GatewayTestConnectionApi"] class DomainViewSet(OrgBulkModelViewSet): model = Domain - filter_fields = ("name", ) - search_fields = filter_fields + filterset_fields = ("name", ) + search_fields = filterset_fields permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.DomainSerializer @@ -31,7 +31,7 @@ class DomainViewSet(OrgBulkModelViewSet): class GatewayViewSet(OrgBulkModelViewSet): model = Gateway - filter_fields = ("domain__name", "name", "username", "ip", "domain") + filterset_fields = ("domain__name", "name", "username", "ip", "domain") search_fields = ("domain__name", "name", "username", "ip") permission_classes = (IsOrgAdmin,) serializer_class = serializers.GatewaySerializer diff --git a/apps/assets/api/favorite_asset.py b/apps/assets/api/favorite_asset.py index 174c77330..cf85d96f2 100644 --- a/apps/assets/api/favorite_asset.py +++ b/apps/assets/api/favorite_asset.py @@ -13,7 +13,7 @@ __all__ = ['FavoriteAssetViewSet'] class FavoriteAssetViewSet(BulkModelViewSet): serializer_class = FavoriteAssetSerializer permission_classes = (IsValidUser,) - filter_fields = ['asset'] + filterset_fields = ['asset'] def dispatch(self, request, *args, **kwargs): with tmp_to_root_org(): diff --git a/apps/assets/api/gathered_user.py b/apps/assets/api/gathered_user.py index 896dab7e1..959259799 100644 --- a/apps/assets/api/gathered_user.py +++ b/apps/assets/api/gathered_user.py @@ -18,5 +18,5 @@ class GatheredUserViewSet(OrgModelViewSet): permission_classes = [IsOrgAdmin] extra_filter_backends = [AssetRelatedByNodeFilterBackend] - filter_fields = ['asset', 'username', 'present', 'asset__ip', 'asset__hostname', 'asset_id'] + filterset_fields = ['asset', 'username', 'present', 'asset__ip', 'asset__hostname', 'asset_id'] search_fields = ['username', 'asset__ip', 'asset__hostname'] diff --git a/apps/assets/api/label.py b/apps/assets/api/label.py index fe298169a..06dff8b8a 100644 --- a/apps/assets/api/label.py +++ b/apps/assets/api/label.py @@ -28,8 +28,8 @@ __all__ = ['LabelViewSet'] class LabelViewSet(OrgBulkModelViewSet): model = Label - filter_fields = ("name", "value") - search_fields = filter_fields + filterset_fields = ("name", "value") + search_fields = filterset_fields permission_classes = (IsOrgAdmin,) serializer_class = serializers.LabelSerializer diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index 924529ce1..a64326042 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -45,7 +45,7 @@ __all__ = [ class NodeViewSet(OrgModelViewSet): model = Node - filter_fields = ('value', 'key', 'id') + filterset_fields = ('value', 'key', 'id') search_fields = ('value', ) permission_classes = (IsOrgAdmin,) serializer_class = serializers.NodeSerializer diff --git a/apps/assets/api/system_user.py b/apps/assets/api/system_user.py index 70bbe376e..e799073d8 100644 --- a/apps/assets/api/system_user.py +++ b/apps/assets/api/system_user.py @@ -29,8 +29,8 @@ class SystemUserViewSet(OrgBulkModelViewSet): System user api set, for add,delete,update,list,retrieve resource """ model = SystemUser - filter_fields = ("name", "username", "protocol") - search_fields = filter_fields + filterset_fields = ("name", "username", "protocol") + search_fields = filterset_fields serializer_class = serializers.SystemUserSerializer serializer_classes = { 'default': serializers.SystemUserSerializer, @@ -136,8 +136,8 @@ class SystemUserCommandFilterRuleListApi(generics.ListAPIView): class SystemUserAssetsListView(generics.ListAPIView): permission_classes = (IsOrgAdmin,) serializer_class = serializers.AssetSimpleSerializer - filter_fields = ("hostname", "ip") - search_fields = filter_fields + filterset_fields = ("hostname", "ip") + search_fields = filterset_fields def get_object(self): pk = self.kwargs.get('pk') diff --git a/apps/assets/api/system_user_relation.py b/apps/assets/api/system_user_relation.py index 411a19be0..90a12eaec 100644 --- a/apps/assets/api/system_user_relation.py +++ b/apps/assets/api/system_user_relation.py @@ -65,7 +65,7 @@ class SystemUserAssetRelationViewSet(BaseRelationViewSet): serializer_class = serializers.SystemUserAssetRelationSerializer model = models.SystemUser.assets.through permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'asset', 'systemuser', ] search_fields = [ @@ -91,7 +91,7 @@ class SystemUserNodeRelationViewSet(BaseRelationViewSet): serializer_class = serializers.SystemUserNodeRelationSerializer model = models.SystemUser.nodes.through permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'node', 'systemuser', ] search_fields = [ @@ -112,7 +112,7 @@ class SystemUserUserRelationViewSet(BaseRelationViewSet): serializer_class = serializers.SystemUserUserRelationSerializer model = models.SystemUser.users.through permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'user', 'systemuser', ] search_fields = [ diff --git a/apps/audits/api.py b/apps/audits/api.py index 71b15ceee..f36724011 100644 --- a/apps/audits/api.py +++ b/apps/audits/api.py @@ -25,8 +25,8 @@ class FTPLogViewSet(CreateModelMixin, date_range_filter_fields = [ ('date_start', ('date_from', 'date_to')) ] - filter_fields = ['user', 'asset', 'system_user', 'filename'] - search_fields = filter_fields + filterset_fields = ['user', 'asset', 'system_user', 'filename'] + search_fields = filterset_fields ordering = ['-date_start'] @@ -38,7 +38,7 @@ class UserLoginLogViewSet(ListModelMixin, CommonGenericViewSet): date_range_filter_fields = [ ('datetime', ('date_from', 'date_to')) ] - filter_fields = ['username', 'ip', 'city', 'type', 'status', 'mfa'] + filterset_fields = ['username', 'ip', 'city', 'type', 'status', 'mfa'] search_fields =['username', 'ip', 'city'] @staticmethod @@ -62,7 +62,7 @@ class OperateLogViewSet(ListModelMixin, OrgGenericViewSet): date_range_filter_fields = [ ('datetime', ('date_from', 'date_to')) ] - filter_fields = ['user', 'action', 'resource_type', 'resource', 'remote_addr'] + filterset_fields = ['user', 'action', 'resource_type', 'resource', 'remote_addr'] search_fields = ['resource'] ordering = ['-datetime'] @@ -75,7 +75,7 @@ class PasswordChangeLogViewSet(ListModelMixin, CommonGenericViewSet): date_range_filter_fields = [ ('datetime', ('date_from', 'date_to')) ] - filter_fields = ['user', 'change_by', 'remote_addr'] + filterset_fields = ['user', 'change_by', 'remote_addr'] ordering = ['-datetime'] def get_queryset(self): @@ -94,7 +94,7 @@ class CommandExecutionViewSet(ListModelMixin, OrgGenericViewSet): date_range_filter_fields = [ ('date_start', ('date_from', 'date_to')) ] - filter_fields = ['user__name', 'command', 'run_as__name', 'is_finished'] + filterset_fields = ['user__name', 'command', 'run_as__name', 'is_finished'] search_fields = ['command', 'user__name', 'run_as__name'] ordering = ['-date_created'] @@ -108,7 +108,7 @@ class CommandExecutionHostRelationViewSet(OrgRelationMixin, OrgBulkModelViewSet) serializer_class = CommandExecutionHostsRelationSerializer m2m_field = CommandExecution.hosts.field permission_classes = [IsOrgAdmin | IsOrgAuditor] - filter_fields = [ + filterset_fields = [ 'id', 'asset', 'commandexecution' ] search_fields = ('asset__hostname', ) diff --git a/apps/common/drf/metadata.py b/apps/common/drf/metadata.py index 6020e66fb..97a42acc0 100644 --- a/apps/common/drf/metadata.py +++ b/apps/common/drf/metadata.py @@ -104,12 +104,12 @@ class SimpleMetadataWithFilters(SimpleMetadata): def determine_metadata(self, request, view): metadata = super(SimpleMetadataWithFilters, self).determine_metadata(request, view) - filter_fields = self.get_filters_fields(request, view) + filterset_fields = self.get_filters_fields(request, view) order_fields = self.get_ordering_fields(request, view) meta_get = metadata.get("actions", {}).get("GET", {}) for k, v in meta_get.items(): - if k in filter_fields: + if k in filterset_fields: v["filter"] = True if k in order_fields: v["order"] = True diff --git a/apps/ops/api/adhoc.py b/apps/ops/api/adhoc.py index a09e7c9ca..4845d49dc 100644 --- a/apps/ops/api/adhoc.py +++ b/apps/ops/api/adhoc.py @@ -25,8 +25,8 @@ __all__ = [ class TaskViewSet(JMSBulkModelViewSet): queryset = Task.objects.all() - filter_fields = ("name",) - search_fields = filter_fields + filterset_fields = ("name",) + search_fields = filterset_fields serializer_class = TaskSerializer permission_classes = (IsOrgAdmin,) diff --git a/apps/orgs/api.py b/apps/orgs/api.py index 077b7eba7..6b7b50401 100644 --- a/apps/orgs/api.py +++ b/apps/orgs/api.py @@ -27,7 +27,7 @@ logger = get_logger(__file__) class OrgViewSet(BulkModelViewSet): - filter_fields = ('name',) + filterset_fields = ('name',) search_fields = ('name', 'comment') queryset = Organization.objects.all() serializer_class = OrgSerializer diff --git a/apps/perms/api/application/application_permission.py b/apps/perms/api/application/application_permission.py index bbad79d26..e7b449b5a 100644 --- a/apps/perms/api/application/application_permission.py +++ b/apps/perms/api/application/application_permission.py @@ -12,8 +12,8 @@ class ApplicationPermissionViewSet(BasePermissionViewSet): """ model = ApplicationPermission serializer_class = serializers.ApplicationPermissionSerializer - filter_fields = ['name', 'category', 'type'] - search_fields = filter_fields + filterset_fields = ['name', 'category', 'type'] + search_fields = filterset_fields custom_filter_fields = BasePermissionViewSet.custom_filter_fields + [ 'application_id', 'application' ] diff --git a/apps/perms/api/application/application_permission_relation.py b/apps/perms/api/application/application_permission_relation.py index 70d7e66e1..770463f7e 100644 --- a/apps/perms/api/application/application_permission_relation.py +++ b/apps/perms/api/application/application_permission_relation.py @@ -37,7 +37,7 @@ class ApplicationPermissionUserRelationViewSet(RelationMixin): serializer_class = serializers.ApplicationPermissionUserRelationSerializer m2m_field = models.ApplicationPermission.users.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', "user", "applicationpermission", ] search_fields = ("user__name", "user__username", "applicationpermission__name") @@ -52,7 +52,7 @@ class ApplicationPermissionUserGroupRelationViewSet(RelationMixin): serializer_class = serializers.ApplicationPermissionUserGroupRelationSerializer m2m_field = models.ApplicationPermission.user_groups.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', "usergroup", "applicationpermission" ] search_fields = ["usergroup__name", "applicationpermission__name"] @@ -67,7 +67,7 @@ class ApplicationPermissionApplicationRelationViewSet(RelationMixin): serializer_class = serializers.ApplicationPermissionApplicationRelationSerializer m2m_field = models.ApplicationPermission.applications.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'application', 'applicationpermission', ] search_fields = ["id", "application__name", "applicationpermission__name"] @@ -82,7 +82,7 @@ class ApplicationPermissionSystemUserRelationViewSet(RelationMixin): serializer_class = serializers.ApplicationPermissionSystemUserRelationSerializer m2m_field = models.ApplicationPermission.system_users.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'systemuser', 'applicationpermission', ] search_fields = [ @@ -103,8 +103,8 @@ class ApplicationPermissionAllApplicationListApi(generics.ListAPIView): permission_classes = (IsOrgAdmin,) serializer_class = serializers.ApplicationPermissionAllApplicationSerializer only_fields = serializers.ApplicationPermissionAllApplicationSerializer.Meta.only_fields - filter_fields = ('name',) - search_fields = filter_fields + filterset_fields = ('name',) + search_fields = filterset_fields def get_queryset(self): pk = self.kwargs.get('pk') @@ -118,8 +118,8 @@ class ApplicationPermissionAllUserListApi(generics.ListAPIView): permission_classes = (IsOrgAdmin,) serializer_class = serializers.ApplicationPermissionAllUserSerializer only_fields = serializers.ApplicationPermissionAllUserSerializer.Meta.only_fields - filter_fields = ('username', 'name') - search_fields = filter_fields + filterset_fields = ('username', 'name') + search_fields = filterset_fields def get_queryset(self): pk = self.kwargs.get('pk') diff --git a/apps/perms/api/application/user_group_permission.py b/apps/perms/api/application/user_group_permission.py index 65e18ce91..32d116b2f 100644 --- a/apps/perms/api/application/user_group_permission.py +++ b/apps/perms/api/application/user_group_permission.py @@ -21,7 +21,7 @@ class UserGroupGrantedApplicationsApi(CommonApiMixin, ListAPIView): permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.ApplicationGrantedSerializer only_fields = serializers.ApplicationGrantedSerializer.Meta.only_fields - filter_fields = ['id', 'name', 'category', 'type', 'comment'] + filterset_fields = ['id', 'name', 'category', 'type', 'comment'] search_fields = ['name', 'comment'] def get_queryset(self): diff --git a/apps/perms/api/application/user_permission/user_permission_applications.py b/apps/perms/api/application/user_permission/user_permission_applications.py index e963783c6..2b8b71847 100644 --- a/apps/perms/api/application/user_permission/user_permission_applications.py +++ b/apps/perms/api/application/user_permission/user_permission_applications.py @@ -25,7 +25,7 @@ __all__ = [ class AllGrantedApplicationsMixin(CommonApiMixin, ListAPIView): only_fields = serializers.ApplicationGrantedSerializer.Meta.only_fields serializer_class = serializers.ApplicationGrantedSerializer - filter_fields = ['id', 'name', 'category', 'type', 'comment'] + filterset_fields = ['id', 'name', 'category', 'type', 'comment'] search_fields = ['name', 'comment'] user: None diff --git a/apps/perms/api/asset/asset_permission.py b/apps/perms/api/asset/asset_permission.py index 0a61189a1..5062f2099 100644 --- a/apps/perms/api/asset/asset_permission.py +++ b/apps/perms/api/asset/asset_permission.py @@ -21,7 +21,7 @@ class AssetPermissionViewSet(BasePermissionViewSet): """ model = AssetPermission serializer_class = serializers.AssetPermissionSerializer - filter_fields = ['name'] + filterset_fields = ['name'] custom_filter_fields = BasePermissionViewSet.custom_filter_fields + [ 'node_id', 'node', 'asset_id', 'hostname', 'ip' ] diff --git a/apps/perms/api/asset/asset_permission_relation.py b/apps/perms/api/asset/asset_permission_relation.py index b21c12cb0..4deebeb61 100644 --- a/apps/perms/api/asset/asset_permission_relation.py +++ b/apps/perms/api/asset/asset_permission_relation.py @@ -36,7 +36,7 @@ class AssetPermissionUserRelationViewSet(RelationMixin): serializer_class = serializers.AssetPermissionUserRelationSerializer m2m_field = models.AssetPermission.users.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', "user", "assetpermission", ] search_fields = ("user__name", "user__username", "assetpermission__name") @@ -51,8 +51,8 @@ class AssetPermissionUserRelationViewSet(RelationMixin): class AssetPermissionAllUserListApi(generics.ListAPIView): permission_classes = (IsOrgAdmin,) serializer_class = serializers.AssetPermissionAllUserSerializer - filter_fields = ("username", "name") - search_fields = filter_fields + filterset_fields = ("username", "name") + search_fields = filterset_fields def get_queryset(self): pk = self.kwargs.get("pk") @@ -67,7 +67,7 @@ class AssetPermissionUserGroupRelationViewSet(RelationMixin): serializer_class = serializers.AssetPermissionUserGroupRelationSerializer m2m_field = models.AssetPermission.user_groups.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', "usergroup", "assetpermission" ] search_fields = ["usergroup__name", "assetpermission__name"] @@ -83,7 +83,7 @@ class AssetPermissionAssetRelationViewSet(RelationMixin): serializer_class = serializers.AssetPermissionAssetRelationSerializer m2m_field = models.AssetPermission.assets.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'asset', 'assetpermission', ] search_fields = ["id", "asset__hostname", "asset__ip", "assetpermission__name"] @@ -98,8 +98,8 @@ class AssetPermissionAssetRelationViewSet(RelationMixin): class AssetPermissionAllAssetListApi(generics.ListAPIView): permission_classes = (IsOrgAdmin,) serializer_class = serializers.AssetPermissionAllAssetSerializer - filter_fields = ("hostname", "ip") - search_fields = filter_fields + filterset_fields = ("hostname", "ip") + search_fields = filterset_fields def get_queryset(self): pk = self.kwargs.get("pk") @@ -119,7 +119,7 @@ class AssetPermissionNodeRelationViewSet(RelationMixin): serializer_class = serializers.AssetPermissionNodeRelationSerializer m2m_field = models.AssetPermission.nodes.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'node', 'assetpermission', ] search_fields = ["node__value", "assetpermission__name"] @@ -135,7 +135,7 @@ class AssetPermissionSystemUserRelationViewSet(RelationMixin): serializer_class = serializers.AssetPermissionSystemUserRelationSerializer m2m_field = models.AssetPermission.system_users.field permission_classes = (IsOrgAdmin,) - filter_fields = [ + filterset_fields = [ 'id', 'systemuser', 'assetpermission', ] search_fields = [ diff --git a/apps/perms/api/asset/user_group_permission.py b/apps/perms/api/asset/user_group_permission.py index 8f48a0342..c1b025cb3 100644 --- a/apps/perms/api/asset/user_group_permission.py +++ b/apps/perms/api/asset/user_group_permission.py @@ -35,7 +35,7 @@ class UserGroupGrantedAssetsApi(ListAPIView): permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.AssetGrantedSerializer only_fields = serializers.AssetGrantedSerializer.Meta.only_fields - filter_fields = ['hostname', 'ip', 'id', 'comment'] + filterset_fields = ['hostname', 'ip', 'id', 'comment'] search_fields = ['hostname', 'ip', 'comment'] def get_queryset(self): @@ -68,7 +68,7 @@ class UserGroupGrantedNodeAssetsApi(ListAPIView): permission_classes = (IsOrgAdminOrAppUser,) serializer_class = serializers.AssetGrantedSerializer only_fields = serializers.AssetGrantedSerializer.Meta.only_fields - filter_fields = ['hostname', 'ip', 'id', 'comment'] + filterset_fields = ['hostname', 'ip', 'id', 'comment'] search_fields = ['hostname', 'ip', 'comment'] def get_queryset(self): diff --git a/apps/perms/api/asset/user_permission/user_permission_assets.py b/apps/perms/api/asset/user_permission/user_permission_assets.py index 771f83bbf..209b59625 100644 --- a/apps/perms/api/asset/user_permission/user_permission_assets.py +++ b/apps/perms/api/asset/user_permission/user_permission_assets.py @@ -27,7 +27,7 @@ class UserDirectGrantedAssetsApi(ListAPIView): """ serializer_class = serializers.AssetGrantedSerializer only_fields = serializers.AssetGrantedSerializer.Meta.only_fields - filter_fields = ['hostname', 'ip', 'id', 'comment'] + filterset_fields = ['hostname', 'ip', 'id', 'comment'] search_fields = ['hostname', 'ip', 'comment'] def get_queryset(self): @@ -43,7 +43,7 @@ class UserDirectGrantedAssetsApi(ListAPIView): class UserFavoriteGrantedAssetsApi(ListAPIView): serializer_class = serializers.AssetGrantedSerializer only_fields = serializers.AssetGrantedSerializer.Meta.only_fields - filter_fields = ['hostname', 'ip', 'id', 'comment'] + filterset_fields = ['hostname', 'ip', 'id', 'comment'] search_fields = ['hostname', 'ip', 'comment'] def get_queryset(self): @@ -101,7 +101,7 @@ class MyUngroupAssetsAsTreeApi(ForUserMixin, AssetsAsTreeMixin, UserDirectGrante class UserAllGrantedAssetsApi(ForAdminMixin, ListAPIView): only_fields = serializers.AssetGrantedSerializer.Meta.only_fields serializer_class = serializers.AssetGrantedSerializer - filter_fields = ['hostname', 'ip', 'id', 'comment'] + filterset_fields = ['hostname', 'ip', 'id', 'comment'] search_fields = ['hostname', 'ip', 'comment'] def get_queryset(self): @@ -123,7 +123,7 @@ class MyAllAssetsAsTreeApi(ForUserMixin, AssetsAsTreeMixin, UserAllGrantedAssets class UserGrantedNodeAssetsApi(UserNodeGrantStatusDispatchMixin, ListAPIView): serializer_class = serializers.AssetGrantedSerializer only_fields = serializers.AssetGrantedSerializer.Meta.only_fields - filter_fields = ['hostname', 'ip', 'id', 'comment'] + filterset_fields = ['hostname', 'ip', 'id', 'comment'] search_fields = ['hostname', 'ip', 'comment'] pagination_class = GrantedAssetLimitOffsetPagination pagination_node: Node diff --git a/apps/terminal/api/command.py b/apps/terminal/api/command.py index 0d5cb1553..cd01df1b3 100644 --- a/apps/terminal/api/command.py +++ b/apps/terminal/api/command.py @@ -28,7 +28,7 @@ __all__ = ['CommandViewSet', 'CommandExportApi', 'InsecureCommandAlertAPI'] class CommandQueryMixin: command_store = get_command_storage() permission_classes = [IsOrgAdminOrAppUser | IsOrgAuditor] - filter_fields = [ + filterset_fields = [ "asset", "system_user", "user", "session", "risk_level", "input" ] diff --git a/apps/terminal/api/session.py b/apps/terminal/api/session.py index 719d7af4f..e8688819e 100644 --- a/apps/terminal/api/session.py +++ b/apps/terminal/api/session.py @@ -42,7 +42,7 @@ class SessionViewSet(OrgBulkModelViewSet): 'display': serializers.SessionDisplaySerializer, } permission_classes = (IsOrgAdminOrAppUser, ) - filter_fields = [ + filterset_fields = [ "user", "asset", "system_user", "remote_addr", "protocol", "terminal", "is_finished", 'login_from', ] diff --git a/apps/terminal/api/storage.py b/apps/terminal/api/storage.py index 0687e213f..9dab8c5d9 100644 --- a/apps/terminal/api/storage.py +++ b/apps/terminal/api/storage.py @@ -30,16 +30,16 @@ class BaseStorageViewSetMixin: class CommandStorageViewSet(BaseStorageViewSetMixin, viewsets.ModelViewSet): - filter_fields = ('name', 'type',) - search_fields = filter_fields + filterset_fields = ('name', 'type',) + search_fields = filterset_fields queryset = CommandStorage.objects.all() serializer_class = CommandStorageSerializer permission_classes = (IsSuperUser,) class ReplayStorageViewSet(BaseStorageViewSetMixin, viewsets.ModelViewSet): - filter_fields = ('name', 'type',) - search_fields = filter_fields + filterset_fields = ('name', 'type',) + search_fields = filterset_fields queryset = ReplayStorage.objects.all() serializer_class = ReplayStorageSerializer permission_classes = (IsSuperUser,) diff --git a/apps/terminal/api/terminal.py b/apps/terminal/api/terminal.py index a5e976034..005d40544 100644 --- a/apps/terminal/api/terminal.py +++ b/apps/terminal/api/terminal.py @@ -27,7 +27,7 @@ class TerminalViewSet(JMSBulkModelViewSet): queryset = Terminal.objects.filter(is_deleted=False) serializer_class = serializers.TerminalSerializer permission_classes = (IsSuperUser,) - filter_fields = ['name', 'remote_addr', 'type'] + filterset_fields = ['name', 'remote_addr', 'type'] def create(self, request, *args, **kwargs): if isinstance(request.data, list): diff --git a/apps/tickets/api/assignee.py b/apps/tickets/api/assignee.py index faf02860b..5b223ffcd 100644 --- a/apps/tickets/api/assignee.py +++ b/apps/tickets/api/assignee.py @@ -12,8 +12,8 @@ from .. import serializers class AssigneeViewSet(viewsets.ReadOnlyModelViewSet): permission_classes = (IsValidUser,) serializer_class = serializers.AssigneeSerializer - filter_fields = ('id', 'name', 'username', 'email', 'source') - search_fields = filter_fields + filterset_fields = ('id', 'name', 'username', 'email', 'source') + search_fields = filterset_fields def get_org(self): org_id = self.request.query_params.get('org_id') diff --git a/apps/tickets/api/ticket.py b/apps/tickets/api/ticket.py index 140bcb596..3d68387da 100644 --- a/apps/tickets/api/ticket.py +++ b/apps/tickets/api/ticket.py @@ -28,7 +28,7 @@ class TicketViewSet(CommonApiMixin, viewsets.ModelViewSet): 'reject': serializers.TicketRejectSerializer, 'close': serializers.TicketCloseSerializer, } - filter_fields = [ + filterset_fields = [ 'id', 'title', 'type', 'action', 'status', 'applicant', 'applicant_display', 'processor', 'processor_display', 'assignees__id' ] diff --git a/apps/users/api/group.py b/apps/users/api/group.py index f91b1d3bd..27196c2f3 100644 --- a/apps/users/api/group.py +++ b/apps/users/api/group.py @@ -12,7 +12,7 @@ __all__ = ['UserGroupViewSet'] class UserGroupViewSet(OrgBulkModelViewSet): model = UserGroup - filter_fields = ("name",) - search_fields = filter_fields + filterset_fields = ("name",) + search_fields = filterset_fields permission_classes = (IsOrgAdmin,) serializer_class = UserGroupSerializer diff --git a/apps/users/api/relation.py b/apps/users/api/relation.py index bbcb5932b..050d9e4e6 100644 --- a/apps/users/api/relation.py +++ b/apps/users/api/relation.py @@ -12,8 +12,8 @@ __all__ = ['UserUserGroupRelationViewSet'] class UserUserGroupRelationViewSet(JMSBulkRelationModelViewSet): - filter_fields = ('user', 'usergroup') - search_fields = filter_fields + filterset_fields = ('user', 'usergroup') + search_fields = filterset_fields serializer_class = serializers.UserUserGroupRelationSerializer permission_classes = (IsOrgAdmin,) m2m_field = User.groups.field diff --git a/apps/users/api/user.py b/apps/users/api/user.py index b0b209e19..672c90e88 100644 --- a/apps/users/api/user.py +++ b/apps/users/api/user.py @@ -32,8 +32,11 @@ __all__ = [ class UserViewSet(CommonApiMixin, UserQuerysetMixin, BulkModelViewSet): - filter_fields = ('username', 'email', 'name', 'id', 'source') - search_fields = filter_fields + filterset_fields = { + 'name': ['exact', 'in'] + } + # filterset_fields = ('username', 'email', 'name', 'id', 'source') + search_fields = filterset_fields permission_classes = (IsOrgAdmin, CanUpdateDeleteUser) serializer_classes = { 'default': UserSerializer,