From 5730e60089e0d776e04663050d1273cb1563e020 Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 4 Jun 2020 17:24:31 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?profile=E5=BA=8F=E5=88=97=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/users/serializers/user.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index fceeed5f3..019524cae 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -234,10 +234,6 @@ class UserProfileSerializer(UserSerializer): fields.remove('password') extra_kwargs.pop('password', None) - if 'public_key' in fields: - fields.remove('public_key') - extra_kwargs.pop('public_key', None) - @staticmethod def get_guide_url(obj): return settings.USER_GUIDE_URL @@ -247,6 +243,13 @@ class UserProfileSerializer(UserSerializer): return 2 return mfa_level + def validate_public_key(self, public_key): + if self.instance and self.instance.can_update_ssh_key(): + if not validate_ssh_public_key(public_key): + raise serializers.ValidationError(_('Not a valid ssh public key')) + return public_key + return None + class UserUpdatePasswordSerializer(serializers.ModelSerializer): old_password = serializers.CharField(required=True, max_length=128, write_only=True)