summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/gui/preferenceswindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/gui/preferenceswindow.py')
-rw-r--r--src/leap/bitmask/gui/preferenceswindow.py35
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)