Don't crash if keyring access is denied on MacOS

CURA-8332
This commit is contained in:
Konstantinos Karmas 2021-06-21 10:47:53 +02:00
parent cfe395460f
commit c1618565ea

View file

@ -4,6 +4,7 @@ from typing import Type, TYPE_CHECKING, Optional, List
import keyring
from keyring.backend import KeyringBackend
from keyring.backends.macOS.api import KeychainDenied
from keyring.errors import NoKeyringError, PasswordSetError
from UM.Logger import Logger
@ -39,6 +40,14 @@ class KeyringAttribute:
self._store_secure = False
Logger.logException("w", "No keyring backend present")
return getattr(instance, self._name)
except KeychainDenied:
self._store_secure = False
Logger.logException("w", "Access to the keyring was denied.")
return getattr(instance, self._name)
except Exception as e:
self._store_secure = False
Logger.logException("w", f"Something went wrong while trying to retrieve the password from the Keyring. Exception: {e}")
return getattr(instance, self._name)
else:
return getattr(instance, self._name)