# -*- coding: utf-8 -*- # from applications.models import Application from perms.models import ApplicationPermission from perms import serializers from ..base import BasePermissionViewSet class ApplicationPermissionViewSet(BasePermissionViewSet): """ 应用授权列表的增删改查API """ model = ApplicationPermission serializer_class = serializers.ApplicationPermissionSerializer filter_fields = ['name', 'category', 'type'] search_fields = filter_fields def get_queryset(self): queryset = super().get_queryset().prefetch_related( "applications", "users", "user_groups", "system_users" ) return queryset def filter_application(self, queryset): application_id = self.request.query_params.get('application_id') application_name = self.request.query_params.get('application') if application_id: applications = Application.objects.filter(pk=application_id) elif application_name: applications = Application.objects.filter(name=application_name) else: return queryset if not applications: return queryset.none() queryset = queryset.filter(applications=applications) return queryset def filter_queryset(self, queryset): queryset = super().filter_queryset(queryset) queryset = self.filter_application(queryset) return queryset