def __init__(self, parent, has_mx, user, backend, soledad_started): """ :param parent: parent object of AdvancedKeyManagement. :parent type: QWidget :param has_mx: defines whether the current provider provides email or not. :type has_mx: bool :param user: the current logged in user. :type user: unicode :param backend: Backend being used :type backend: Backend :param soledad_started: whether soledad has started or not :type soledad_started: bool """ QtGui.QDialog.__init__(self, parent) self.ui = Ui_AdvancedKeyManagement() self.ui.setupUi(self) # XXX: Temporarily disable the key import. self.ui.pbImportKeys.setVisible(False) if not has_mx: msg = self.tr("The provider that you are using " "does not support {0}.") msg = msg.format(get_service_display_name(MX_SERVICE)) self._disable_ui(msg) return if not soledad_started: msg = self.tr("To use this, you need to enable/start {0}.") msg = msg.format(get_service_display_name(MX_SERVICE)) self._disable_ui(msg) return # XXX: since import is disabled this is no longer a dangerous feature. # else: # msg = self.tr( # "<span style='color:#ff0000;'>WARNING</span>:<br>" # "This is an experimental feature, you can lose access to " # "existing e-mails.") # self.ui.lblStatus.setText(msg) self._user = user self._backend = backend self._backend_connect() # show current key information self.ui.leUser.setText(user) # set up connections self.ui.pbImportKeys.clicked.connect(self._import_keys) self.ui.pbExportKeys.clicked.connect(self._export_keys) # Stretch columns to content self.ui.twPublicKeys.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self._backend.keymanager_get_key_details(user) self._backend.keymanager_list_keys()
def _populate_services(self): """ Loads the services that the provider provides into the UI for the user to enable or disable. """ title = self.tr("Services by {0}").format( self._provider_details['domain']) self.ui.grpServices.setTitle(title) services = get_supported(self._provider_details['services']) for service in services: try: if service not in self._shown_services: checkbox = QtGui.QCheckBox(self) service_label = get_service_display_name(service) checkbox.setText(service_label) self.ui.serviceListLayout.addWidget(checkbox) checkbox.stateChanged.connect( partial(self._service_selection_changed, service)) checkbox.setChecked(True) self._shown_services.add(service) except ValueError: logger.error( self.tr("Something went wrong while trying to " "load service %s" % (service, )))
def _populate_services(self): """ Loads the services that the provider provides into the UI for the user to enable or disable. """ self.ui.grpServices.setTitle( self.tr("Services by {0}").format(self._provider_details['name'])) services = get_supported(self._provider_details['services']) for service in services: try: if service not in self._shown_services: checkbox = QtGui.QCheckBox(self) service_label = get_service_display_name(service) checkbox.setText(service_label) self.ui.serviceListLayout.addWidget(checkbox) checkbox.stateChanged.connect( partial(self._service_selection_changed, service)) checkbox.setChecked(True) self._shown_services.add(service) except ValueError: logger.error( self.tr("Something went wrong while trying to " "load service %s" % (service,)))
def get_light_config(self, domain, lang=None): """ Return a dict with the data for the loaded object. :param domain: the domain name of the provider. :type domain: str :param lang: the language to use for localized strings. :type lang: str :rtype: dict or None if the ProviderConfig isn't loaded. """ config = self.get_provider_config(domain) if config is None: return details = {} details["domain"] = config.get_domain() details["name"] = config.get_name(lang=lang) details["description"] = config.get_description(lang=lang) details["enrollment_policy"] = config.get_enrollment_policy() details["services"] = config.get_services() services = [] for service in config.get_services(): services.append(get_service_display_name(service)) details['services_string'] = ", ".join(services) return details
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self._systray = None self._eip_status_menu = None self.ui = Ui_EIPStatus() self.ui.setupUi(self) self.eipconnection = EIPConnection() # set systray tooltip status self._eip_status = "" self._service_name = get_service_display_name(EIP_SERVICE) self.ui.eip_bandwidth.hide() # Set the EIP status icons self.CONNECTING_ICON = None self.CONNECTED_ICON = None self.ERROR_ICON = None self.CONNECTING_ICON_TRAY = None self.CONNECTED_ICON_TRAY = None self.ERROR_ICON_TRAY = None self._set_eip_icons() self._set_traffic_rates() self._make_status_clickable() self._provider = "" # Action for the systray self._eip_disabled_action = QtGui.QAction( "{0} is {1}".format(self._service_name, self.tr("disabled")), self)
def _populate_services(self, domain): """ SLOT TRIGGERS: self.ui.cbProvidersServices.currentIndexChanged[unicode] Loads the services that the provider provides into the UI for the user to enable or disable. :param domain: the domain of the provider to load services from. :type domain: str """ # We hide the maybe-visible status label after a change self.ui.lblProvidersServicesStatus.setVisible(False) if not domain: return provider_config = self._get_provider_config(domain) if provider_config is None: return # set the proper connection for the 'save' button try: self.ui.pbSaveServices.clicked.disconnect() except RuntimeError: pass # Signal was not connected save_services = partial(self._save_enabled_services, domain) self.ui.pbSaveServices.clicked.connect(save_services) services = get_supported(provider_config.get_services()) services_conf = self._settings.get_enabled_services(domain) # discard changes if other provider is selected self._selected_services = set() # from: http://stackoverflow.com/a/13103617/687989 # remove existing checkboxes layout = self.ui.vlServices for i in reversed(range(layout.count())): layout.itemAt(i).widget().setParent(None) # add one checkbox per service and set the current configured value for service in services: try: checkbox = QtGui.QCheckBox(self) service_label = get_service_display_name( service, self._standalone) checkbox.setText(service_label) self.ui.vlServices.addWidget(checkbox) checkbox.stateChanged.connect( partial(self._service_selection_changed, service)) checkbox.setChecked(service in services_conf) except ValueError: logger.error("Something went wrong while trying to " "load service %s" % (service,))
def __init__(self, parent=None): """ Constructor for MailStatusWidget :param parent: parent widget for this one. :type parent: QtGui.QWidget """ QtGui.QWidget.__init__(self, parent) self._systray = None self._disabled = True self._started = False self._unread_mails = 0 self.ui = Ui_MailStatusWidget() self.ui.setupUi(self) self.ui.lblMailReadyHelp.setVisible(False) # set systray tooltip status self._mx_status = "" self._service_name = get_service_display_name(MX_SERVICE) # Set the Mail status icons self.CONNECTING_ICON = None self.CONNECTED_ICON = None self.ERROR_ICON = None self.CONNECTING_ICON_TRAY = None self.CONNECTED_ICON_TRAY = None self.ERROR_ICON_TRAY = None self._set_mail_icons() register(event=catalog.KEYMANAGER_LOOKING_FOR_KEY, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_KEY_FOUND, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_KEY_NOT_FOUND, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_STARTED_KEY_GENERATION, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_FINISHED_KEY_GENERATION, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_DONE_UPLOADING_KEYS, callback=self._mail_handle_keymanager_events) register(event=catalog.SOLEDAD_DONE_DOWNLOADING_KEYS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_DONE_UPLOADING_KEYS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_SYNC_RECEIVE_STATUS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_SYNC_SEND_STATUS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_INVALID_AUTH_TOKEN, callback=self.set_soledad_invalid_auth_token) register(event=catalog.SOLEDAD_DONE_DATA_SYNC, callback=self._mail_handle_soledad_events) register(event=catalog.MAIL_UNREAD_MESSAGES, callback=self._mail_handle_imap_events) register(event=catalog.IMAP_SERVICE_STARTED, callback=self._mail_handle_imap_events) register(event=catalog.SMTP_SERVICE_STARTED, callback=self._mail_handle_imap_events) register(event=catalog.IMAP_CLIENT_LOGIN, callback=self._mail_handle_imap_events) self._soledad_event.connect(self._mail_handle_soledad_events_slot) self._imap_event.connect(self._mail_handle_imap_events_slot) self._smtp_event.connect(self._mail_handle_smtp_events_slot) self._keymanager_event.connect(self._mail_handle_keymanager_events_slot)
def __init__(self, parent, eip_conductor, leap_signaler): """ :param parent: the parent of the widget. :type parent: QObject :param eip_conductor: an EIPConductor object. :type eip_conductor: EIPConductor """ QtGui.QWidget.__init__(self, parent) self._systray = None self._eip_status_menu = None self.ui = Ui_EIPStatus() self.ui.setupUi(self) self._leap_signaler = leap_signaler self.eip_conductor = eip_conductor self.eipconnection = eip_conductor.eip_connection # set systray tooltip status self._eip_status = "" self._service_name = get_service_display_name(EIP_SERVICE) self.ui.eip_bandwidth.hide() self.hide_fw_down_button() self.hide_eip_cancel_button() self.ui.btnFwDown.clicked.connect( self._on_fw_down_button_clicked) self.ui.btnEipCancel.clicked.connect( self._on_eip_cancel_button_clicked) # Set the EIP status icons self.CONNECTING_ICON = None self.CONNECTED_ICON = None self.ERROR_ICON = None self.CONNECTING_ICON_TRAY = None self.CONNECTED_ICON_TRAY = None self.ERROR_ICON_TRAY = None self._set_eip_icons() self._set_traffic_rates() self._make_status_clickable() self._provider = "" self.is_restart = False self.is_cold_start = True self.user_cancelled = False self.missing_helpers = False # Action for the systray self._eip_disabled_action = QtGui.QAction( u"{0} is {1}".format( self._service_name, self.tr("disabled")), self)
def __init__(self, user, keymanager, soledad): """ :param user: the current logged in user. :type user: unicode :param keymanager: the existing keymanager instance :type keymanager: KeyManager :param soledad: a loaded instance of Soledad :type soledad: Soledad """ QtGui.QWidget.__init__(self) self.ui = Ui_AdvancedKeyManagement() self.ui.setupUi(self) # XXX: Temporarily disable the key import. self.ui.pbImportKeys.setVisible(False) # if Soledad is not started yet if sameProxiedObjects(soledad, None): self.ui.gbMyKeyPair.setEnabled(False) self.ui.gbStoredPublicKeys.setEnabled(False) msg = self.tr("<span style='color:#0000FF;'>NOTE</span>: " "To use this, you need to enable/start {0}.") msg = msg.format(get_service_display_name(MX_SERVICE)) self.ui.lblStatus.setText(msg) return # XXX: since import is disabled this is no longer a dangerous feature. # else: # msg = self.tr( # "<span style='color:#ff0000;'>WARNING</span>:<br>" # "This is an experimental feature, you can lose access to " # "existing e-mails.") # self.ui.lblStatus.setText(msg) self._keymanager = keymanager self._soledad = soledad self._key = keymanager.get_key(user, openpgp.OpenPGPKey) self._key_priv = keymanager.get_key( user, openpgp.OpenPGPKey, private=True) # show current key information self.ui.leUser.setText(user) self.ui.leKeyID.setText(self._key.key_id) self.ui.leFingerprint.setText(self._key.fingerprint) # set up connections self.ui.pbImportKeys.clicked.connect(self._import_keys) self.ui.pbExportKeys.clicked.connect(self._export_keys) # Stretch columns to content self.ui.twPublicKeys.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self._list_keys()
def get_services_string(self): """ Returns a string with the available services in the current provider, ready to be shown to the user. """ services = [] for service in self.get_services(): services.append(get_service_display_name(service)) services_str = ", ".join(services) return services_str
def __init__(self, settings, backend, **kwargs): """ Initializes EIP Conductor. :param settings: :type settings: :param backend: :type backend: """ self.eip_connection = EIPConnection() self.eip_name = get_service_display_name(EIP_SERVICE) self._settings = settings self._backend = backend self._eip_status = None
def __init__(self, settings, backend, leap_signaler, **kwargs): """ Initializes EIP Conductor. :param settings: :type settings: :param backend: :type backend: """ self.eip_connection = EIPConnection() self.eip_name = get_service_display_name(EIP_SERVICE) self._settings = settings self._leap_signaler = leap_signaler self._backend = backend self._eip_status = None
def __init__(self, user, keymanager, soledad): """ :param user: the current logged in user. :type user: unicode :param keymanager: the existing keymanager instance :type keymanager: KeyManager :param soledad: a loaded instance of Soledad :type soledad: Soledad """ QtGui.QWidget.__init__(self) self.ui = Ui_AdvancedKeyManagement() self.ui.setupUi(self) # if Soledad is not started yet if sameProxiedObjects(soledad, None): self.ui.container.setEnabled(False) msg = self.tr("<span style='color:#0000FF;'>NOTE</span>: " "To use this, you need to enable/start {0}.") msg = msg.format(get_service_display_name(MX_SERVICE)) self.ui.lblStatus.setText(msg) return else: msg = self.tr( "<span style='color:#ff0000;'>WARNING</span>:<br>" "This is an experimental feature, you can lose access to " "existing e-mails.") self.ui.lblStatus.setText(msg) self._keymanager = keymanager self._soledad = soledad self._key = keymanager.get_key(user, openpgp.OpenPGPKey) self._key_priv = keymanager.get_key( user, openpgp.OpenPGPKey, private=True) # show current key information self.ui.leUser.setText(user) self.ui.leKeyID.setText(self._key.key_id) self.ui.leFingerprint.setText(self._key.fingerprint) # set up connections self.ui.pbImportKeys.clicked.connect(self._import_keys) self.ui.pbExportKeys.clicked.connect(self._export_keys)
def _load_services(self, services): """ TRIGGERS: prov_get_supported_services Loads the services that the provider provides into the UI for the user to enable or disable. :param services: list of supported service names :type services: list of str """ services_conf = self.account.services() self._selected_services = set() # Remove existing checkboxes # (the new widget is deleted when its parent is deleted. # We need to loop backwards because removing things from the # beginning shifts items and changes the order of items in the layout. # Using `QObject.deleteLater` doesn't seem to work.) layout = self.ui.provider_services_layout for i in reversed(range(layout.count())): layout.itemAt(i).widget().setParent(None) # add one checkbox per service and set the current value # from what is saved in settings. for service in services: if not HAS_EIP and service == "openvpn": continue try: checkbox = QtGui.QCheckBox( get_service_display_name(service), self) self.ui.provider_services_layout.addWidget(checkbox) checkbox.stateChanged.connect( partial(self._service_selection_changed, service)) checkbox.setChecked(service in services_conf) except ValueError: logger.error("Something went wrong while trying to " "load service %s" % (service,))
def _load_services(self, services): """ TRIGGERS: prov_get_supported_services Loads the services that the provider provides into the UI for the user to enable or disable. :param services: list of supported service names :type services: list of str """ services_conf = self.account.services() self._selected_services = set() # Remove existing checkboxes # (the new widget is deleted when its parent is deleted. # We need to loop backwards because removing things from the # beginning shifts items and changes the order of items in the layout. # Using `QObject.deleteLater` doesn't seem to work.) layout = self.ui.provider_services_layout for i in reversed(range(layout.count())): layout.itemAt(i).widget().setParent(None) # add one checkbox per service and set the current value # from what is saved in settings. for service in services: if not HAS_EIP and service == "openvpn": continue try: checkbox = QtGui.QCheckBox(get_service_display_name(service), self) self.ui.provider_services_layout.addWidget(checkbox) checkbox.stateChanged.connect( partial(self._service_selection_changed, service)) checkbox.setChecked(service in services_conf) except ValueError: logger.error("Something went wrong while trying to " "load service %s" % (service, ))
def _load_services(self, services): """ TRIGGERS: self.ui.cbProvidersServices.currentIndexChanged[unicode] Loads the services that the provider provides into the UI for the user to enable or disable. :param domain: the domain of the provider to load services from. :type domain: str """ domain = self.ui.cbProvidersServices.currentText() services_conf = self._settings.get_enabled_services(domain) # discard changes if other provider is selected self._selected_services = set() # from: http://stackoverflow.com/a/13103617/687989 # remove existing checkboxes layout = self.ui.vlServices for i in reversed(range(layout.count())): layout.itemAt(i).widget().setParent(None) # add one checkbox per service and set the current configured value for service in services: try: checkbox = QtGui.QCheckBox(self) service_label = get_service_display_name(service) checkbox.setText(service_label) self.ui.vlServices.addWidget(checkbox) checkbox.stateChanged.connect( partial(self._service_selection_changed, service)) checkbox.setChecked(service in services_conf) except ValueError: logger.error("Something went wrong while trying to " "load service %s" % (service,))
def _provides_mx(self): """ Actions to perform if the provider provides MX. """ pw_enabled = True enabled_services = self._settings.get_enabled_services(self._domain) mx_name = get_service_display_name(MX_SERVICE) 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) pw_enabled = False else: # check if Soledad is bootstrapped if not self._soledad_started: 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) pw_enabled = False self.ui.gbPasswordChange.setEnabled(pw_enabled)
def __init__(self, parent=None): """ Constructor for MailStatusWidget :param parent: parent widget for this one. :type parent: QtGui.QWidget """ QtGui.QWidget.__init__(self, parent) self._systray = None self._disabled = True self._started = False self.ui = Ui_MailStatusWidget() self.ui.setupUi(self) # set systray tooltip status self._mx_status = "" self._service_name = get_service_display_name(MX_SERVICE) # Set the Mail status icons self.CONNECTING_ICON = None self.CONNECTED_ICON = None self.ERROR_ICON = None self.CONNECTING_ICON_TRAY = None self.CONNECTED_ICON_TRAY = None self.ERROR_ICON_TRAY = None self._set_mail_icons() register(signal=proto.KEYMANAGER_LOOKING_FOR_KEY, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_KEY_FOUND, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) # register(signal=proto.KEYMANAGER_KEY_NOT_FOUND, # callback=self._mail_handle_keymanager_events, # reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_STARTED_KEY_GENERATION, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_FINISHED_KEY_GENERATION, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_DONE_UPLOADING_KEYS, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.SOLEDAD_DONE_DOWNLOADING_KEYS, callback=self._mail_handle_soledad_events, reqcbk=lambda req, resp: None) register(signal=proto.SOLEDAD_DONE_UPLOADING_KEYS, callback=self._mail_handle_soledad_events, reqcbk=lambda req, resp: None) register(signal=proto.IMAP_UNREAD_MAIL, callback=self._mail_handle_imap_events, reqcbk=lambda req, resp: None) register(signal=proto.IMAP_SERVICE_STARTED, callback=self._mail_handle_imap_events, reqcbk=lambda req, resp: None) register(signal=proto.SMTP_SERVICE_STARTED, callback=self._mail_handle_imap_events, reqcbk=lambda req, resp: None) register(signal=proto.SOLEDAD_INVALID_AUTH_TOKEN, callback=self.set_soledad_invalid_auth_token, reqcbk=lambda req, resp: None) self._soledad_event.connect(self._mail_handle_soledad_events_slot) self._imap_event.connect(self._mail_handle_imap_events_slot) self._smtp_event.connect(self._mail_handle_smtp_events_slot) self._keymanager_event.connect( self._mail_handle_keymanager_events_slot)
def __init__(self, parent=None): """ Constructor for MailStatusWidget :param parent: parent widget for this one. :type parent: QtGui.QWidget """ QtGui.QWidget.__init__(self, parent) self._systray = None self._disabled = True self._started = False self.ui = Ui_MailStatusWidget() self.ui.setupUi(self) # set systray tooltip status self._mx_status = "" self._service_name = get_service_display_name(MX_SERVICE) # Set the Mail status icons self.CONNECTING_ICON = None self.CONNECTED_ICON = None self.ERROR_ICON = None self.CONNECTING_ICON_TRAY = None self.CONNECTED_ICON_TRAY = None self.ERROR_ICON_TRAY = None self._set_mail_icons() register(signal=proto.KEYMANAGER_LOOKING_FOR_KEY, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_KEY_FOUND, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) # register(signal=proto.KEYMANAGER_KEY_NOT_FOUND, # callback=self._mail_handle_keymanager_events, # reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_STARTED_KEY_GENERATION, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_FINISHED_KEY_GENERATION, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.KEYMANAGER_DONE_UPLOADING_KEYS, callback=self._mail_handle_keymanager_events, reqcbk=lambda req, resp: None) register(signal=proto.SOLEDAD_DONE_DOWNLOADING_KEYS, callback=self._mail_handle_soledad_events, reqcbk=lambda req, resp: None) register(signal=proto.SOLEDAD_DONE_UPLOADING_KEYS, callback=self._mail_handle_soledad_events, reqcbk=lambda req, resp: None) register(signal=proto.IMAP_UNREAD_MAIL, callback=self._mail_handle_imap_events, reqcbk=lambda req, resp: None) register(signal=proto.IMAP_SERVICE_STARTED, callback=self._mail_handle_imap_events, reqcbk=lambda req, resp: None) register(signal=proto.SMTP_SERVICE_STARTED, callback=self._mail_handle_imap_events, reqcbk=lambda req, resp: None) register(signal=proto.SOLEDAD_INVALID_AUTH_TOKEN, callback=self.set_soledad_invalid_auth_token, reqcbk=lambda req, resp: None) self._soledad_event.connect( self._mail_handle_soledad_events_slot) self._imap_event.connect( self._mail_handle_imap_events_slot) self._smtp_event.connect( self._mail_handle_smtp_events_slot) self._keymanager_event.connect( self._mail_handle_keymanager_events_slot)
def __init__(self, parent, srp_auth, provider_config, soledad, domain): """ :param parent: parent object of the PreferencesWindow. :parent type: QWidget :param srp_auth: SRPAuth object configured in the main app. :type srp_auth: SRPAuth :param provider_config: ProviderConfig object. :type provider_config: ProviderConfig :param soledad: Soledad instance :type soledad: Soledad :param domain: the selected domain in the login widget :type domain: unicode """ QtGui.QDialog.__init__(self, parent) self.AUTOMATIC_GATEWAY_LABEL = self.tr("Automatic") self._srp_auth = srp_auth self._settings = LeapSettings() self._soledad = soledad # Load UI self.ui = Ui_Preferences() self.ui.setupUi(self) self.ui.lblPasswordChangeStatus.setVisible(False) self.ui.lblProvidersServicesStatus.setVisible(False) self._selected_services = set() # Connections self.ui.pbChangePassword.clicked.connect(self._change_password) self.ui.cbProvidersServices.currentIndexChanged[unicode].connect( self._populate_services) if not self._settings.get_configured_providers(): self.ui.gbEnabledServices.setEnabled(False) else: self._add_configured_providers() pw_enabled = False # check if the user is logged in if srp_auth is not None and srp_auth.get_token() is not None: # check if provider has 'mx' ... if provider_config.provides_mx(): enabled_services = self._settings.get_enabled_services(domain) mx_name = get_service_display_name(MX_SERVICE) # ... and if the user have it enabled 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: 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: msg = self.tr( "In order to change your password you need to be logged in.") self._set_password_change_status(msg) self._select_provider_by_name(domain) self.ui.gbPasswordChange.setEnabled(pw_enabled)
def __init__(self, parent=None): """ Constructor for MailStatusWidget :param parent: parent widget for this one. :type parent: QtGui.QWidget """ QtGui.QWidget.__init__(self, parent) self._systray = None self._disabled = True self._started = False self._unread_mails = 0 self.ui = Ui_MailStatusWidget() self.ui.setupUi(self) self.ui.lblMailReadyHelp.setVisible(False) # set systray tooltip status self._mx_status = "" self._service_name = get_service_display_name(MX_SERVICE) # Set the Mail status icons self.CONNECTING_ICON = None self.CONNECTED_ICON = None self.ERROR_ICON = None self.CONNECTING_ICON_TRAY = None self.CONNECTED_ICON_TRAY = None self.ERROR_ICON_TRAY = None self._set_mail_icons() register(event=catalog.KEYMANAGER_LOOKING_FOR_KEY, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_KEY_FOUND, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_KEY_NOT_FOUND, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_STARTED_KEY_GENERATION, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_FINISHED_KEY_GENERATION, callback=self._mail_handle_keymanager_events) register(event=catalog.KEYMANAGER_DONE_UPLOADING_KEYS, callback=self._mail_handle_keymanager_events) register(event=catalog.SOLEDAD_DONE_DOWNLOADING_KEYS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_DONE_UPLOADING_KEYS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_SYNC_RECEIVE_STATUS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_SYNC_SEND_STATUS, callback=self._mail_handle_soledad_events) register(event=catalog.SOLEDAD_INVALID_AUTH_TOKEN, callback=self.set_soledad_invalid_auth_token) register(event=catalog.SOLEDAD_DONE_DATA_SYNC, callback=self._mail_handle_soledad_events) register(event=catalog.MAIL_UNREAD_MESSAGES, callback=self._mail_handle_imap_events) register(event=catalog.IMAP_SERVICE_STARTED, callback=self._mail_handle_imap_events) register(event=catalog.SMTP_SERVICE_STARTED, callback=self._mail_handle_imap_events) register(event=catalog.IMAP_CLIENT_LOGIN, callback=self._mail_handle_imap_events) self._soledad_event.connect(self._mail_handle_soledad_events_slot) self._imap_event.connect(self._mail_handle_imap_events_slot) self._smtp_event.connect(self._mail_handle_smtp_events_slot) self._keymanager_event.connect( self._mail_handle_keymanager_events_slot)