summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug-7430_signal_InvalidAuthTokenError1
-rw-r--r--src/leap/mail/incoming/service.py16
2 files changed, 9 insertions, 8 deletions
diff --git a/changes/bug-7430_signal_InvalidAuthTokenError b/changes/bug-7430_signal_InvalidAuthTokenError
new file mode 100644
index 0000000..cf805ba
--- /dev/null
+++ b/changes/bug-7430_signal_InvalidAuthTokenError
@@ -0,0 +1 @@
+- If the auth token has expired signal the GUI to request her to log in again (Closes: #7430)
diff --git a/src/leap/mail/incoming/service.py b/src/leap/mail/incoming/service.py
index d554c51..d8b91ba 100644
--- a/src/leap/mail/incoming/service.py
+++ b/src/leap/mail/incoming/service.py
@@ -228,18 +228,18 @@ class IncomingMail(Service):
def _log_synced(result):
log.msg('FETCH soledad SYNCED.')
return result
- try:
- log.msg('FETCH: syncing soledad...')
- d = self._soledad.sync()
- d.addCallback(_log_synced)
- return d
- # TODO is this still raised? or should we do failure.trap
- # instead?
- except InvalidAuthTokenError:
+
+ def _signal_invalid_auth(failure):
+ failure.trap(InvalidAuthTokenError)
# if the token is invalid, send an event so the GUI can
# disable mail and show an error message.
emit_async(catalog.SOLEDAD_INVALID_AUTH_TOKEN)
+ log.msg('FETCH: syncing soledad...')
+ d = self._soledad.sync()
+ d.addCallbacks(_log_synced, _signal_invalid_auth)
+ return d
+
def _signal_fetch_to_ui(self, doclist):
"""
Send leap events to ui.