mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-29 21:51:31 +00:00
perf: Language settings in personal settings
This commit is contained in:
@@ -48,5 +48,5 @@ class BasicSerializer(serializers.Serializer):
|
||||
|
||||
|
||||
class LinaSerializer(serializers.Serializer):
|
||||
# basic = BasicSerializer(required=False, label=_('Basic'))
|
||||
basic = BasicSerializer(required=False, label=_('Basic'))
|
||||
file = FileEncryptSerializer(required=False, label=_('File Encryption'))
|
||||
|
||||
@@ -63,6 +63,7 @@ class UserProfileSerializer(UserSerializer):
|
||||
mfa_level = LabeledChoiceField(choices=MFAMixin.MFA_LEVEL_CHOICES, label=_("MFA"), required=False)
|
||||
guide_url = serializers.SerializerMethodField()
|
||||
receive_backends = serializers.ListField(child=serializers.CharField(), read_only=True)
|
||||
lang = serializers.SerializerMethodField(label=_("Language"))
|
||||
|
||||
class Meta(UserSerializer.Meta):
|
||||
read_only_fields = [
|
||||
@@ -74,7 +75,7 @@ class UserProfileSerializer(UserSerializer):
|
||||
]
|
||||
fields = UserSerializer.Meta.fields + [
|
||||
'public_key_comment', 'public_key_hash_md5', 'guide_url',
|
||||
"wecom_id", "dingtalk_id", "feishu_id", "slack_id",
|
||||
"wecom_id", "dingtalk_id", "feishu_id", "slack_id", 'lang'
|
||||
] + read_only_fields
|
||||
|
||||
extra_kwargs = dict(UserSerializer.Meta.extra_kwargs)
|
||||
@@ -144,6 +145,9 @@ class UserProfileSerializer(UserSerializer):
|
||||
raise serializers.ValidationError(msg)
|
||||
return password
|
||||
|
||||
def get_lang(self, obj):
|
||||
return getattr(self.instance, 'lang', settings.LANGUAGE_CODE)
|
||||
|
||||
|
||||
class UserPKUpdateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
|
||||
@@ -6,10 +6,12 @@ import logging
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
from contextlib import contextmanager
|
||||
|
||||
import pyotp
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
from django.utils import translation
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from common.tasks import send_mail_async
|
||||
@@ -336,3 +338,10 @@ def is_confirm_time_valid(session, key):
|
||||
|
||||
def is_auth_confirm_time_valid(session):
|
||||
return is_confirm_time_valid(session, 'MFA_VERIFY_TIME')
|
||||
|
||||
|
||||
@contextmanager
|
||||
def activate_user_language(user):
|
||||
language = getattr(user, 'lang', settings.LANGUAGE_CODE)
|
||||
with translation.override(language):
|
||||
yield
|
||||
|
||||
Reference in New Issue
Block a user