Always persist/read the access token when a keyring isn't available

Otherwise things just silently fail on restart: the users won't be able to sync, and it'll complain about unknown tokens for devices.
This commit is contained in:
Travis Ralston 2019-10-02 22:11:57 -06:00
parent 70969d43ec
commit 48c7f7a17e

View File

@ -101,6 +101,7 @@ class ProxyDaemon:
accounts = self.store.load_users(self.name)
for user_id, device_id in accounts:
token = False
if self.conf.keyring:
try:
token = keyring.get_password(
@ -108,7 +109,7 @@ class ProxyDaemon:
)
except RuntimeError as e:
logger.error(e)
else:
if not token:
token = self.store.load_access_token(user_id, device_id)
if not token:
@ -570,6 +571,7 @@ class ProxyDaemon:
self.pan_clients[user_id] = pan_client
token_stored = False
if self.conf.keyring:
try:
keyring.set_password(
@ -577,9 +579,10 @@ class ProxyDaemon:
f"{user_id}-{pan_client.device_id}-token",
pan_client.access_token,
)
token_stored = True
except RuntimeError as e:
logger.error(e)
else:
if not token_stored:
self.store.save_access_token(
user_id, pan_client.device_id, pan_client.access_token
)