diff options
Diffstat (limited to 'src/leap/bitmask/gui/preferenceswindow.py')
| -rw-r--r-- | src/leap/bitmask/gui/preferenceswindow.py | 35 | 
1 files changed, 20 insertions, 15 deletions
| diff --git a/src/leap/bitmask/gui/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py index acb39b07..8e9ef95a 100644 --- a/src/leap/bitmask/gui/preferenceswindow.py +++ b/src/leap/bitmask/gui/preferenceswindow.py @@ -22,7 +22,9 @@ import os  import logging  from functools import partial +  from PySide import QtCore, QtGui +from zope.proxy import sameProxiedObjects  from leap.bitmask.config.leapsettings import LeapSettings  from leap.bitmask.gui.ui_preferences import Ui_Preferences @@ -31,7 +33,7 @@ from leap.bitmask.crypto.srpauth import SRPAuthBadUserOrPassword  from leap.bitmask.util.password import basic_password_checks  from leap.bitmask.services import get_supported  from leap.bitmask.config.providerconfig import ProviderConfig -from leap.bitmask.services import get_service_display_name +from leap.bitmask.services import get_service_display_name, MX_SERVICE  logger = logging.getLogger(__name__) @@ -40,7 +42,7 @@ class PreferencesWindow(QtGui.QDialog):      """      Window that displays the preferences.      """ -    def __init__(self, parent, srp_auth, provider_config): +    def __init__(self, parent, srp_auth, provider_config, soledad):          """          :param parent: parent object of the PreferencesWindow.          :parent type: QWidget @@ -48,13 +50,15 @@ class PreferencesWindow(QtGui.QDialog):          :type srp_auth: SRPAuth          :param provider_config: ProviderConfig object.          :type provider_config: ProviderConfig +        :param soledad: Soledad instance +        :type soledad: Soledad          """          QtGui.QDialog.__init__(self, parent)          self.AUTOMATIC_GATEWAY_LABEL = self.tr("Automatic")          self._srp_auth = srp_auth          self._settings = LeapSettings() -        self._soledad = None +        self._soledad = soledad          # Load UI          self.ui = Ui_Preferences() @@ -81,20 +85,25 @@ class PreferencesWindow(QtGui.QDialog):              # check if provider has 'mx' ...              domain = provider_config.get_domain()              self._select_provider_by_name(domain) +              if provider_config.provides_mx():                  enabled_services = self._settings.get_enabled_services(domain) -                mx_name = get_service_display_name('mx') +                mx_name = get_service_display_name(MX_SERVICE)                  # ... and if the user have it enabled -                if 'mx' not in enabled_services: +                if MX_SERVICE not in enabled_services:                      msg = self.tr("You need to enable {0} in order to change "                                    "the password.".format(mx_name))                      self._set_password_change_status(msg, error=True)                  else: -                    msg = self.tr( -                        "You need to wait until {0} is ready in " -                        "order to change the password.".format(mx_name)) -                    self._set_password_change_status(msg) +                    if sameProxiedObjects(self._soledad, None): +                        msg = self.tr( +                            "You need to wait until {0} is ready in " +                            "order to change the password.".format(mx_name)) +                        self._set_password_change_status(msg) +                    else: +                        # Soledad is bootstrapped +                        pw_enabled = True              else:                  pw_enabled = True          else: @@ -104,18 +113,14 @@ class PreferencesWindow(QtGui.QDialog):          self.ui.gbPasswordChange.setEnabled(pw_enabled) -    def set_soledad_ready(self, soledad): +    def set_soledad_ready(self):          """          SLOT          TRIGGERS:              parent.soledad_ready -        It sets the soledad object as ready to use. - -        :param soledad: Soledad object configured in the main app. -        :type soledad: Soledad +        It notifies when the soledad object as ready to use.          """ -        self._soledad = soledad          self.ui.lblPasswordChangeStatus.setVisible(False)          self.ui.gbPasswordChange.setEnabled(True) | 
