mirror of https://github.com/jumpserver/jumpserver
[Update] 修改用户profile序列类
parent
54623a5b06
commit
f3bc6c0b22
|
@ -55,7 +55,7 @@ class UserUpdatePKApi(UserQuerysetMixin, generics.UpdateAPIView):
|
||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
|
|
||||||
class UserProfileApi(generics.RetrieveAPIView):
|
class UserProfileApi(generics.RetrieveUpdateAPIView):
|
||||||
permission_classes = (IsAuthenticated,)
|
permission_classes = (IsAuthenticated,)
|
||||||
serializer_class = serializers.UserProfileSerializer
|
serializer_class = serializers.UserProfileSerializer
|
||||||
|
|
||||||
|
|
|
@ -191,10 +191,46 @@ class UserRoleSerializer(serializers.Serializer):
|
||||||
|
|
||||||
class UserProfileSerializer(UserSerializer):
|
class UserProfileSerializer(UserSerializer):
|
||||||
admin_or_audit_orgs = UserOrgSerializer(many=True, read_only=True)
|
admin_or_audit_orgs = UserOrgSerializer(many=True, read_only=True)
|
||||||
current_org_roles = serializers.ListField()
|
current_org_roles = serializers.ListField(read_only=True)
|
||||||
|
public_key_comment = serializers.SerializerMethodField()
|
||||||
|
public_key_hash_md5 = serializers.SerializerMethodField()
|
||||||
|
|
||||||
class Meta(UserSerializer.Meta):
|
class Meta(UserSerializer.Meta):
|
||||||
fields = UserSerializer.Meta.fields + [
|
fields = UserSerializer.Meta.fields + [
|
||||||
'admin_or_audit_orgs', 'current_org_roles'
|
'public_key_comment', 'public_key_hash_md5', 'admin_or_audit_orgs', 'current_org_roles'
|
||||||
]
|
]
|
||||||
|
extra_kwargs = dict(UserSerializer.Meta.extra_kwargs)
|
||||||
|
extra_kwargs.update({
|
||||||
|
'name': {'read_only': True, 'max_length': 128},
|
||||||
|
'username': {'read_only': True, 'max_length': 128},
|
||||||
|
'email': {'read_only': True},
|
||||||
|
'mfa_level': {'read_only': True},
|
||||||
|
'source': {'read_only': True},
|
||||||
|
'is_valid': {'read_only': True},
|
||||||
|
'is_active': {'read_only': True},
|
||||||
|
'groups': {'read_only': True},
|
||||||
|
'roles': {'read_only': True},
|
||||||
|
'password_strategy': {'read_only': True},
|
||||||
|
'date_expired': {'read_only': True},
|
||||||
|
'date_joined': {'read_only': True},
|
||||||
|
'last_login': {'read_only': True},
|
||||||
|
'role': {'read_only': True},
|
||||||
|
})
|
||||||
|
|
||||||
|
if 'password' in fields:
|
||||||
|
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_public_key_comment(obj):
|
||||||
|
return obj.public_key_obj.comment
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_public_key_hash_md5(obj):
|
||||||
|
if callable(obj.public_key_obj.hash_md5):
|
||||||
|
return obj.public_key_obj.hash_md5()
|
||||||
|
return ''
|
||||||
|
|
Loading…
Reference in New Issue