def load_settings(self, kgk_manager, password, no_sync=False):
        """
        Loads settings from local file and from a sync server if possible.

        :param kgk_manager: kgk manager
        :type kgk_manager: KgkManager
        :param password: the masterpassword
        :type password: str
        :param no_sync: skip the sync update?
        :type no_sync: bool
        """
        self.load_local_settings(kgk_manager)
        if not no_sync:
            if self.sync_manager.has_settings():
                pull_successful, data = self.sync_manager.pull()
                if pull_successful and len(data) > 0:
                    remote_kgk_manager = KgkManager()
                    remote_kgk_manager.update_from_blob(
                        password.encode('utf-8'), b64decode(data))
                    if remote_kgk_manager.has_kgk() and kgk_manager.get_kgk(
                    ) != remote_kgk_manager.get_kgk():
                        raise ValueError(
                            "KGK mismatch! This are not your settings!")
                    self.update_from_export_data(remote_kgk_manager,
                                                 b64decode(data))
                else:
                    print("Sync failed: No connection to the server.")
示例#2
0
 def sync_clicked(self):
     self.masterpassword_entered()
     if not self.settings_manager.sync_manager.has_settings():
         self.show_sync_settings()
     else:
         pull_successful, data = self.settings_manager.sync_manager.pull()
         if pull_successful and len(data) > 0:
             remote_kgk_manager = KgkManager()
             remote_kgk_manager.update_from_blob(self.master_password_edit.text().encode('utf-8'), b64decode(data))
             if len(self.preference_manager.get_kgk_block()) == 112 and \
                remote_kgk_manager.has_kgk() and self.kgk_manager.has_kgk() and \
                self.kgk_manager.get_kgk() != remote_kgk_manager.get_kgk():
                 if len(self.settings_manager.get_domain_list()) > 0:
                     print("Lokal und auf dem Server gibt es unterschiedliche KGKs. Das ist ein Problem!")
                 self.migrate_local_domains(remote_kgk_manager)
             else:
                 if len(self.preference_manager.get_kgk_block()) != 112:
                     self.kgk_manager = remote_kgk_manager
                     self.kgk_manager.set_preference_manager(self.preference_manager)
                     self.kgk_manager.store_local_kgk_block()
                 self.settings_manager.update_from_export_data(remote_kgk_manager, b64decode(data))
                 self.domain_edit.blockSignals(True)
                 current_domain = self.domain_edit.lineEdit().text()
                 for i in reversed(range(self.domain_edit.count())):
                     self.domain_edit.removeItem(i)
                 self.domain_edit.insertItems(0, self.settings_manager.get_domain_list())
                 self.domain_edit.blockSignals(False)
                 self.domain_edit.setEditText(current_domain)
         self.settings_manager.store_settings(self.kgk_manager)
示例#3
0
def decrypt_remote_settings(kgk_mng, settings_mng):
    remote_kgk_manager = KgkManager()
    remote_kgk_manager.update_from_blob(master_password.encode('utf-8'), b64decode(data))
    if kgk_exists and remote_kgk_manager.has_kgk() and kgk_mng.has_kgk() and \
       kgk_mng.get_kgk() != remote_kgk_manager.get_kgk():
        print("Lokal und auf dem Server gibt es unterschiedliche KGKs. Das ist ein Problem!")
    else:
        if not kgk_exists:
            kgk_mng = remote_kgk_manager
            kgk_mng.set_preference_manager(preference_manager)
            kgk_mng.store_local_kgk_block()
        settings_mng.update_from_export_data(remote_kgk_manager, b64decode(data))
        print("Verbindung erfolgreich getestet.")
def decrypt_remote_settings(kgk_mng, settings_mng):
    remote_kgk_manager = KgkManager()
    remote_kgk_manager.update_from_blob(master_password.encode('utf-8'), b64decode(data))
    if kgk_exists and remote_kgk_manager.has_kgk() and kgk_mng.has_kgk() and \
       kgk_mng.get_kgk() != remote_kgk_manager.get_kgk():
        print("Lokal und auf dem Server gibt es unterschiedliche KGKs. Das ist ein Problem!")
    else:
        if not kgk_exists:
            kgk_mng = remote_kgk_manager
            kgk_mng.set_preference_manager(preference_manager)
            kgk_mng.store_local_kgk_block()
        settings_mng.update_from_export_data(remote_kgk_manager, b64decode(data))
        print("Verbindung erfolgreich getestet.")
    def load_settings(self, kgk_manager, password, no_sync=False):
        """
        Loads settings from local file and from a sync server if possible.

        :param kgk_manager: kgk manager
        :type kgk_manager: KgkManager
        :param password: the masterpassword
        :type password: str
        :param no_sync: skip the sync update?
        :type no_sync: bool
        """
        self.load_local_settings(kgk_manager)
        if not no_sync:
            if self.sync_manager.has_settings():
                pull_successful, data = self.sync_manager.pull()
                if pull_successful and len(data) > 0:
                    remote_kgk_manager = KgkManager()
                    remote_kgk_manager.update_from_blob(password.encode('utf-8'), b64decode(data))
                    if remote_kgk_manager.has_kgk() and kgk_manager.get_kgk() != remote_kgk_manager.get_kgk():
                        raise ValueError("KGK mismatch! This are not your settings!")
                    self.update_from_export_data(remote_kgk_manager, b64decode(data))
                else:
                    print("Sync failed: No connection to the server.")