From b8fb23a0a053921a75153e4a7971ec8e28bdfee4 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:30:48 +0800 Subject: [PATCH] perf: user setting (#11610) Co-authored-by: feng <1304903146@qq.com> --- apps/users/serializers/preference/lina.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/users/serializers/preference/lina.py b/apps/users/serializers/preference/lina.py index b5a67975d..b658904f4 100644 --- a/apps/users/serializers/preference/lina.py +++ b/apps/users/serializers/preference/lina.py @@ -2,9 +2,11 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers from common.serializers.fields import EncryptedField +from ...models import Preference class BasicSerializer(serializers.Serializer): + has_secret_key = serializers.SerializerMethodField() secret_key = EncryptedField( required=False, max_length=1024, write_only=True, allow_blank=True, @@ -16,6 +18,11 @@ class BasicSerializer(serializers.Serializer): label=_('Confirm file encryption password') ) + def get_has_secret_key(self, obj): + user = self.context['request'].user + query = {'user': user, 'name': 'secret_key', 'category': 'lina'} + return Preference.objects.filter(**query).exists() + def validate(self, attrs): secret_key = attrs.pop('secret_key', None) secret_key_again = attrs.pop('secret_key_again', None)