diff --git a/cura/OAuth2/KeyringAttribute.py b/cura/OAuth2/KeyringAttribute.py index 64e813d242..f717f83bef 100644 --- a/cura/OAuth2/KeyringAttribute.py +++ b/cura/OAuth2/KeyringAttribute.py @@ -11,6 +11,7 @@ from UM.Logger import Logger if TYPE_CHECKING: from cura.OAuth2.Models import BaseModel +DONT_EVER_STORE = ["refresh_token"] class KeyringAttribute: """ @@ -34,17 +35,20 @@ class KeyringAttribute: keyring.set_password("cura", self._keyring_name, value) except PasswordSetError: self._store_secure = False - setattr(instance, self._name, value) + if self._name not in DONT_EVER_STORE: + setattr(instance, self._name, value) Logger.logException("w", "Keyring access denied") except NoKeyringError: self._store_secure = False - setattr(instance, self._name, value) + if self._name not in DONT_EVER_STORE: + setattr(instance, self._name, value) Logger.logException("w", "No keyring backend present") except BaseException as e: # A BaseException can occur in Windows when the keyring attempts to write a token longer than 1024 # characters in the Windows Credentials Manager. self._store_secure = False - setattr(instance, self._name, value) + if self._name not in DONT_EVER_STORE: + setattr(instance, self._name, value) Logger.log("w", "Keyring failed: {}".format(e)) else: setattr(instance, self._name, value)