diff --git a/apps/perms/serializers/asset/permission.py b/apps/perms/serializers/asset/permission.py index 1ee95afee..f00b0d606 100644 --- a/apps/perms/serializers/asset/permission.py +++ b/apps/perms/serializers/asset/permission.py @@ -83,22 +83,14 @@ class AssetPermissionSerializer(BulkOrgResourceModelSerializer): return queryset def to_internal_value(self, data): - if not data['assets']: - data['assets'] = [] - if not data['system_users']: - data['system_users'] = [] - if not data['users']: - data['users'] = [] - if not data['user_groups']: - data['user_groups'] = [] - if not data['nodes']: - data['nodes'] = [] # 系统用户是必填项 + system_users = data.get('system_users', []) system_users_display = data.pop('system_users_display', '') for i in range(len(system_users_display)): system_user = SystemUser.objects.filter(name=system_users_display[i]).first() - if system_user and system_user.id not in data['system_users']: - data['system_users'].append(system_user.id) + if system_user and system_user.id not in system_users: + system_users.append(system_user.id) + data['system_users'] = system_users return super().to_internal_value(data) def perform_display_create(self, instance, **kwargs):