mirror of https://github.com/jumpserver/jumpserver
feat: 应用按类型筛选可以指定多个类型
parent
c21217d50c
commit
3f0a0b33b5
|
@ -1,11 +1,11 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
#
|
#
|
||||||
|
|
||||||
from orgs.mixins.api import OrgBulkModelViewSet
|
from orgs.mixins.api import OrgBulkModelViewSet
|
||||||
|
|
||||||
from ..hands import IsOrgAdminOrAppUser
|
from ..hands import IsOrgAdminOrAppUser
|
||||||
from .. import serializers
|
from .. import serializers
|
||||||
from ..models import Application
|
from ..models import Application
|
||||||
|
from applications.filters import ApplicationFilter
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['ApplicationViewSet']
|
__all__ = ['ApplicationViewSet']
|
||||||
|
@ -13,7 +13,7 @@ __all__ = ['ApplicationViewSet']
|
||||||
|
|
||||||
class ApplicationViewSet(OrgBulkModelViewSet):
|
class ApplicationViewSet(OrgBulkModelViewSet):
|
||||||
model = Application
|
model = Application
|
||||||
filterset_fields = ('name', 'type', 'category')
|
filterset_class = ApplicationFilter
|
||||||
search_fields = filterset_fields
|
search_fields = ('name', 'type', 'category')
|
||||||
permission_classes = (IsOrgAdminOrAppUser,)
|
permission_classes = (IsOrgAdminOrAppUser,)
|
||||||
serializer_class = serializers.ApplicationSerializer
|
serializer_class = serializers.ApplicationSerializer
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
from django_filters import rest_framework as filters
|
||||||
|
|
||||||
|
from .models import Application
|
||||||
|
from applications import const
|
||||||
|
|
||||||
|
|
||||||
|
class ApplicationFilter(filters.FilterSet):
|
||||||
|
type = filters.MultipleChoiceFilter(choices=const.ApplicationTypeChoices.choices)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Application
|
||||||
|
fields = ['id', 'name', 'category', 'type', 'comment']
|
|
@ -1,6 +1,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
from applications.models import Application
|
from applications.models import Application
|
||||||
|
from applications.filters import ApplicationFilter
|
||||||
from perms.models import ApplicationPermission
|
from perms.models import ApplicationPermission
|
||||||
from perms import serializers
|
from perms import serializers
|
||||||
from ..base import BasePermissionViewSet
|
from ..base import BasePermissionViewSet
|
||||||
|
@ -12,8 +13,8 @@ class ApplicationPermissionViewSet(BasePermissionViewSet):
|
||||||
"""
|
"""
|
||||||
model = ApplicationPermission
|
model = ApplicationPermission
|
||||||
serializer_class = serializers.ApplicationPermissionSerializer
|
serializer_class = serializers.ApplicationPermissionSerializer
|
||||||
filterset_fields = ['name', 'category', 'type']
|
filterset_class = ApplicationFilter
|
||||||
search_fields = filterset_fields
|
search_fields = ['name', 'category', 'type']
|
||||||
custom_filter_fields = BasePermissionViewSet.custom_filter_fields + [
|
custom_filter_fields = BasePermissionViewSet.custom_filter_fields + [
|
||||||
'application_id', 'application'
|
'application_id', 'application'
|
||||||
]
|
]
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
from rest_framework.generics import ListAPIView
|
from rest_framework.generics import ListAPIView
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
|
from applications.filters import ApplicationFilter
|
||||||
from common.mixins.api import CommonApiMixin
|
from common.mixins.api import CommonApiMixin
|
||||||
from applications.api.mixin import (
|
from applications.api.mixin import (
|
||||||
SerializeApplicationToTreeNodeMixin
|
SerializeApplicationToTreeNodeMixin
|
||||||
|
@ -25,7 +26,7 @@ __all__ = [
|
||||||
class AllGrantedApplicationsMixin(CommonApiMixin, ListAPIView):
|
class AllGrantedApplicationsMixin(CommonApiMixin, ListAPIView):
|
||||||
only_fields = serializers.ApplicationGrantedSerializer.Meta.only_fields
|
only_fields = serializers.ApplicationGrantedSerializer.Meta.only_fields
|
||||||
serializer_class = serializers.ApplicationGrantedSerializer
|
serializer_class = serializers.ApplicationGrantedSerializer
|
||||||
filterset_fields = ['id', 'name', 'category', 'type', 'comment']
|
filterset_class = ApplicationFilter
|
||||||
search_fields = ['name', 'comment']
|
search_fields = ['name', 'comment']
|
||||||
user: None
|
user: None
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue