From 7ea2a0d6a5ad79101dd9a6238f87a949e5f6cbc5 Mon Sep 17 00:00:00 2001 From: Bai Date: Fri, 30 Oct 2020 17:22:26 +0800 Subject: [PATCH] =?UTF-8?q?perf(perms):=20=E5=BA=94=E7=94=A8=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E8=A7=84=E5=88=99=E5=BA=8F=E5=88=97=E7=B1=BB=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0applications=E7=B1=BB=E5=9E=8B=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../perms/serializers/application/permission.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apps/perms/serializers/application/permission.py b/apps/perms/serializers/application/permission.py index beb006f73..7be6ec9ca 100644 --- a/apps/perms/serializers/application/permission.py +++ b/apps/perms/serializers/application/permission.py @@ -38,3 +38,20 @@ class ApplicationPermissionSerializer(BulkOrgResourceModelSerializer): queryset = queryset.prefetch_related('users', 'user_groups', 'applications', 'system_users') return queryset + def validate_applications(self, applications): + if self.instance: + permission_type = self.instance.type + else: + permission_type = self.initial_data['type'] + + other_type_applications = [ + application for application in applications + if application.type != permission_type + ] + if len(other_type_applications) > 0: + error = _( + 'The application list contains applications ' + 'that are different from the permission type. ({})' + ).format(', '.join([application.name for application in other_type_applications])) + raise serializers.ValidationError(error) + return applications