fix: 应用授权按type 过滤报错

pull/6529/head
xinwen 2021-07-21 17:26:51 +08:00 committed by Jiangjie.Bai
parent 689bd093be
commit fee3715d30
4 changed files with 17 additions and 18 deletions

View File

@ -5,7 +5,6 @@ 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 +12,11 @@ __all__ = ['ApplicationViewSet']
class ApplicationViewSet(OrgBulkModelViewSet): class ApplicationViewSet(OrgBulkModelViewSet):
model = Application model = Application
filterset_class = ApplicationFilter filterset_fields = {
'name': ['exact'],
'category': ['exact'],
'type': ['exact', 'in'],
}
search_fields = ('name', 'type', 'category') search_fields = ('name', 'type', 'category')
permission_classes = (IsOrgAdminOrAppUser,) permission_classes = (IsOrgAdminOrAppUser,)
serializer_class = serializers.ApplicationSerializer serializer_class = serializers.ApplicationSerializer

View File

@ -1,12 +0,0 @@
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']

View File

@ -1,7 +1,6 @@
# -*- 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
@ -13,7 +12,11 @@ class ApplicationPermissionViewSet(BasePermissionViewSet):
""" """
model = ApplicationPermission model = ApplicationPermission
serializer_class = serializers.ApplicationPermissionSerializer serializer_class = serializers.ApplicationPermissionSerializer
filterset_class = ApplicationFilter filterset_fields = {
'name': ['exact'],
'category': ['exact'],
'type': ['exact', 'in'],
}
search_fields = ['name', 'category', 'type'] 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'

View File

@ -3,7 +3,6 @@
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
@ -26,7 +25,13 @@ __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_class = ApplicationFilter filterset_fields = {
'id': ['exact'],
'name': ['exact'],
'category': ['exact'],
'type': ['exact', 'in'],
'comment': ['exact'],
}
search_fields = ['name', 'comment'] search_fields = ['name', 'comment']
user: None user: None