perf(perms): 应用授权规则序列类添加applications类型校验

pull/4906/head
Bai 2020-10-30 17:22:26 +08:00 committed by Jiangjie.Bai
parent c90b9d70dc
commit 7ea2a0d6a5
1 changed files with 17 additions and 0 deletions

View File

@ -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