diff options
| -rw-r--r-- | changes/bug-3774_fix-logout-error | 2 | ||||
| -rw-r--r-- | src/leap/bitmask/crypto/srpauth.py | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 17 | 
3 files changed, 13 insertions, 7 deletions
| diff --git a/changes/bug-3774_fix-logout-error b/changes/bug-3774_fix-logout-error new file mode 100644 index 00000000..ce0951f0 --- /dev/null +++ b/changes/bug-3774_fix-logout-error @@ -0,0 +1,2 @@ +  o Catch logout problem, display a user message and allow log back in after a +    successful logout if there was a logout error before. Closes #3774. diff --git a/src/leap/bitmask/crypto/srpauth.py b/src/leap/bitmask/crypto/srpauth.py index 41ce130a..776fb2cc 100644 --- a/src/leap/bitmask/crypto/srpauth.py +++ b/src/leap/bitmask/crypto/srpauth.py @@ -553,6 +553,7 @@ class SRPAuth(QtCore.QObject):              except Exception as e:                  logger.warning("Something went wrong with the logout: %r" %                                 (e,)) +                raise              else:                  self.set_session_id(None)                  self.set_uid(None) diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 98cfacb1..89069151 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1453,13 +1453,16 @@ class MainWindow(QtGui.QMainWindow):          Switches the stackedWidget back to the login stage after          logging out          """ -        self._logged_user = None -        self.ui.action_log_out.setEnabled(False) -        self.ui.stackedWidget.setCurrentIndex(self.LOGIN_INDEX) -        self._login_widget.set_password("") -        self._login_widget.set_enabled(True) -        self._login_widget.set_status("") -        self.ui.btnPreferences.setEnabled(False) +        if ok: +            self._logged_user = None +            self.ui.action_log_out.setEnabled(False) +            self.ui.stackedWidget.setCurrentIndex(self.LOGIN_INDEX) +            self._login_widget.set_password("") +            self._login_widget.set_enabled(True) +            self._login_widget.set_status("") +        else: +            status_text = self.tr("Something went wrong with the logout.") +            self._status_panel.set_global_status(status_text, error=True)      def _intermediate_stage(self, data):          """ | 
