perf: 修复手动登陆账号密码无法赋值问题

This commit is contained in:
Eric 2023-08-14 17:18:13 +08:00 committed by Bryan
parent 4899f6bb69
commit efe57b3ebe

View File

@ -52,17 +52,18 @@ class VaultModelMixin(models.Model):
abstract = True abstract = True
# 缓存 secret 值, lazy-property 不能用 # 缓存 secret 值, lazy-property 不能用
__secret = False __secret = None
@property @property
def secret(self): def secret(self):
if self.__secret is False: if self.__secret:
from accounts.backends import vault_client return self.__secret
secret = vault_client.get(self) from accounts.backends import vault_client
if not secret and not self.secret_has_save_to_vault: secret = vault_client.get(self)
# vault_client 获取不到, 并且 secret 没有保存到 vault, 就从 self._secret 获取 if not secret and not self.secret_has_save_to_vault:
secret = self._secret # vault_client 获取不到, 并且 secret 没有保存到 vault, 就从 self._secret 获取
self.__secret = secret secret = self._secret
self.__secret = secret
return self.__secret return self.__secret
@secret.setter @secret.setter
@ -72,6 +73,7 @@ class VaultModelMixin(models.Model):
先保存到 db, 再保存到 vault 同时删除本地 db _secret 先保存到 db, 再保存到 vault 同时删除本地 db _secret
""" """
self._secret = value self._secret = value
self.__secret = value
_secret_save_to_vault_mark = '# Secret-has-been-saved-to-vault #' _secret_save_to_vault_mark = '# Secret-has-been-saved-to-vault #'