diff options
| -rw-r--r-- | src/leap/bitmask/crypto/srpauth.py | 13 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 75 | 
2 files changed, 45 insertions, 43 deletions
| diff --git a/src/leap/bitmask/crypto/srpauth.py b/src/leap/bitmask/crypto/srpauth.py index 179520d5..7cf7e55a 100644 --- a/src/leap/bitmask/crypto/srpauth.py +++ b/src/leap/bitmask/crypto/srpauth.py @@ -604,8 +604,9 @@ class SRPAuth(QtCore.QObject):      __instance = None -    authentication_finished = QtCore.Signal(bool, str) -    logout_finished = QtCore.Signal(bool, str) +    authentication_finished = QtCore.Signal() +    logout_ok = QtCore.Signal() +    logout_error = QtCore.Signal()      def __init__(self, provider_config):          """ @@ -679,7 +680,7 @@ class SRPAuth(QtCore.QObject):          :type _: IGNORED          """          logger.debug("Successful login!") -        self.authentication_finished.emit(True, self.tr("Succeeded")) +        self.authentication_finished.emit()      def get_session_id(self):          return self.__instance.get_session_id() @@ -697,8 +698,10 @@ class SRPAuth(QtCore.QObject):          """          try:              self.__instance.logout() -            self.logout_finished.emit(True, self.tr("Succeeded")) +            logger.debug("Logout success") +            self.logout_ok.emit()              return True          except Exception as e: -            self.logout_finished.emit(False, "%s" % (e,)) +            logger.debug("Logout error: {0!r}".format(e)) +            self.logout_error.emit()          return False diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 949dcb03..7cec4831 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1139,8 +1139,8 @@ class MainWindow(QtGui.QMainWindow):                  self._srp_auth = SRPAuth(self._provider_config)                  self._srp_auth.authentication_finished.connect(                      self._authentication_finished) -                self._srp_auth.logout_finished.connect( -                    self._done_logging_out) +                self._srp_auth.logout_ok.connect(self._logout_ok) +                self._srp_auth.logout_error.connect(self._logout_error)              self._login_defer = self._srp_auth.authenticate(username, password)              self._login_defer.addErrback(self._login_errback) @@ -1150,7 +1150,7 @@ class MainWindow(QtGui.QMainWindow):              logger.error(data[self._backend.ERROR_KEY])              self._login_widget.set_enabled(True) -    def _authentication_finished(self, ok, message): +    def _authentication_finished(self):          """          SLOT          TRIGGER: self._srp_auth.authentication_finished @@ -1158,30 +1158,23 @@ class MainWindow(QtGui.QMainWindow):          Once the user is properly authenticated, try starting the EIP          service          """ -        # In general we want to "filter" likely complicated error -        # messages, but in this case, the messages make more sense as -        # they come. Since they are "Unknown user" or "Unknown -        # password" -        self._login_widget.set_status(message, error=not ok) - -        if ok: -            self._logged_user = self._login_widget.get_user() -            user = self._logged_user -            domain = self._provider_config.get_domain() -            full_user_id = make_address(user, domain) -            self._mail_conductor.userid = full_user_id -            self._login_defer = None -            self._start_eip_bootstrap() - -            # if soledad/mail is enabled: -            if MX_SERVICE in self._enabled_services: -                btn_enabled = self._login_widget.set_logout_btn_enabled -                btn_enabled(False) -                self.soledad_ready.connect(lambda: btn_enabled(True)) -                self._soledad_bootstrapper.soledad_failed.connect( -                    lambda: btn_enabled(True)) -        else: -            self._login_widget.set_enabled(True) +        self._login_widget.set_status(self.tr("Succeeded"), error=False) + +        self._logged_user = self._login_widget.get_user() +        user = self._logged_user +        domain = self._provider_config.get_domain() +        full_user_id = make_address(user, domain) +        self._mail_conductor.userid = full_user_id +        self._login_defer = None +        self._start_eip_bootstrap() + +        # if soledad/mail is enabled: +        if MX_SERVICE in self._enabled_services: +            btn_enabled = self._login_widget.set_logout_btn_enabled +            btn_enabled(False) +            self.soledad_ready.connect(lambda: btn_enabled(True)) +            self._soledad_bootstrapper.soledad_failed.connect( +                lambda: btn_enabled(True))      def _start_eip_bootstrap(self):          """ @@ -1851,11 +1844,22 @@ class MainWindow(QtGui.QMainWindow):          threads.deferToThread(self._srp_auth.logout)          self.logout.emit() -    def _done_logging_out(self, ok, message): -        # TODO missing params in docstring +    def _logout_error(self):          """          SLOT -        TRIGGER: self._srp_auth.logout_finished +        TRIGGER: self._srp_auth.logout_error + +        Inform the user about a logout error. +        """ +        self._login_widget.done_logout() +        self.ui.lblLoginProvider.setText(self.tr("Login")) +        self._login_widget.set_status( +            self.tr("Something went wrong with the logout.")) + +    def _logout_ok(self): +        """ +        SLOT +        TRIGGER: self._srp_auth.logout_ok          Switches the stackedWidget back to the login stage after          logging out @@ -1863,14 +1867,9 @@ class MainWindow(QtGui.QMainWindow):          self._login_widget.done_logout()          self.ui.lblLoginProvider.setText(self.tr("Login")) -        if ok: -            self._logged_user = None -            self._login_widget.logged_out() -            self._mail_status.mail_state_disabled() - -        else: -            self._login_widget.set_status( -                self.tr("Something went wrong with the logout.")) +        self._logged_user = None +        self._login_widget.logged_out() +        self._mail_status.mail_state_disabled()      def _intermediate_stage(self, data):          # TODO this method name is confusing as hell. | 
