diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index b08b09144..eb03a0e6f 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -6,7 +6,7 @@ from rest_framework import serializers from common.mixins import CommonBulkSerializerMixin from common.validators import PhoneValidator -from common.utils import pretty_string +from common.utils import pretty_string, get_logger from common.drf.fields import EncryptedField from rbac.builtin import BuiltinRole from rbac.permissions import RBACPermission @@ -19,6 +19,8 @@ __all__ = [ 'InviteSerializer', 'ServiceAccountSerializer', ] +logger = get_logger(__file__) + class RolesSerializerMixin(serializers.Serializer): system_roles = serializers.ManyRelatedField( @@ -199,8 +201,10 @@ class UserSerializer(RolesSerializerMixin, CommonBulkSerializerMixin, serializer if not disallow_fields: return attrs # 用户自己不能更新自己的一些字段 - error = _('User cannot self-update fields: {}').format(disallow_fields) - raise serializers.ValidationError(error) + logger.debug('Disallow update self fields: %s', disallow_fields) + for field in disallow_fields: + attrs.pop(field, None) + return attrs def validate(self, attrs): attrs = self.check_disallow_self_update_fields(attrs)