fix: setting field encrypt issue

v4.6
Bai 2025-02-06 16:56:38 +08:00 committed by 老广
parent 2ca4002624
commit 482319fadf
1 changed files with 4 additions and 3 deletions

View File

@ -10,7 +10,8 @@ from django.utils.translation import gettext_lazy as _
from rest_framework.utils.encoders import JSONEncoder
from common.db.models import JMSBaseModel
from common.utils import signer, get_logger
from common.utils import get_logger
from common.db.utils import Encryptor
from .signals import setting_changed
logger = get_logger(__name__)
@ -53,7 +54,7 @@ class Setting(models.Model):
try:
value = self.value
if self.encrypted:
value = signer.unsign(value)
value = Encryptor(value).decrypt()
if not value:
return None
value = json.loads(value)
@ -66,7 +67,7 @@ class Setting(models.Model):
try:
v = json.dumps(item, cls=JSONEncoder)
if self.encrypted:
v = signer.sign(v)
v = Encryptor(v).encrypt()
self.value = v
except json.JSONDecodeError as e:
raise ValueError("Json dump error: {}".format(str(e)))