diff --git a/src/cutecoin/gui/community_tab.py b/src/cutecoin/gui/community_tab.py index c7c7938786d727fc1ed6f66c11f60ee50cd4eafb..09ebb8adb0443c5e920547619bdf072add9e70e5 100644 --- a/src/cutecoin/gui/community_tab.py +++ b/src/cutecoin/gui/community_tab.py @@ -96,18 +96,10 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): dialog.exec_() def send_membership_demand(self): - password = "" - message = "Please enter your password" - - while not self.account.check_password(password): - password = QInputDialog.getText(self, "Account password", - message, - QLineEdit.Password) - message = "Error, wrong password. Please enter your password" - if password[1] is True: - password = password[0] - else: - return + password = self.password_asker.ask() + if password == "": + return + try: self.account.send_membership(password, self.community, 'IN') except ValueError as e: @@ -119,18 +111,10 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): You can't request a membership.") def send_membership_leaving(self): - password = "" - message = "Please enter your password" - - while not self.account.check_password(password): - password = QInputDialog.getText(self, "Account password", - message, - QLineEdit.Password) - message = "Error, wrong password. Please enter your password" - if password[1] is True: - password = password[0] - else: - return + password = self.password_asker.ask() + if password == "": + return + try: self.account.send_membership(password, self.community, 'OUT') except ValueError as e: diff --git a/src/cutecoin/gui/process_cfg_account.py b/src/cutecoin/gui/process_cfg_account.py index 6b26a8080755ff655106f088c88f07b86f838d73..df95f7167c4fe6926d8de2cf9b54c4a9ab6e4883 100644 --- a/src/cutecoin/gui/process_cfg_account.py +++ b/src/cutecoin/gui/process_cfg_account.py @@ -6,10 +6,11 @@ Created on 6 mars 2014 import logging from ucoinpy.documents.peer import Peer from ucoinpy.key import SigningKey -from cutecoin.gen_resources.account_cfg_uic import Ui_AccountConfigurationDialog -from cutecoin.gui.process_cfg_community import ProcessConfigureCommunity -from cutecoin.models.communities import CommunitiesListModel -from cutecoin.tools.exceptions import KeyAlreadyUsed, Error +from ..gen_resources.account_cfg_uic import Ui_AccountConfigurationDialog +from ..gui.process_cfg_community import ProcessConfigureCommunity +from ..gui.password_asker import PasswordAskerDialog +from ..models.communities import CommunitiesListModel +from ..tools.exceptions import KeyAlreadyUsed, Error from PyQt5.QtWidgets import QDialog, QErrorMessage, QInputDialog, QMessageBox, QLineEdit @@ -84,6 +85,7 @@ class StepPageKey(Step): password = self.config_dialog.edit_password.text() self.config_dialog.account.salt = salt self.config_dialog.account.pubkey = SigningKey(salt, password).pubkey + self.config_dialog.password_asker = PasswordAskerDialog(self.config_dialog.account) model = CommunitiesListModel(self.config_dialog.account) self.config_dialog.list_communities.setModel(model) @@ -135,6 +137,7 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog): super().__init__() self.setupUi(self) self.account = account + self.password_asker = None self.app = app step_init = StepPageInit(self) step_key = StepPageKey(self) @@ -153,7 +156,9 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog): def open_process_add_community(self): logging.debug("Opening configure community dialog") - dialog = ProcessConfigureCommunity(self.account, None) + logging.debug(self.password_asker) + dialog = ProcessConfigureCommunity(self.account, None, + self.password_asker) dialog.accepted.connect(self.action_add_community) dialog.exec_() @@ -229,17 +234,10 @@ class ProcessConfigureAccount(QDialog, Ui_AccountConfigurationDialog): QErrorMessage(self).showMessage(e.message) password = self.edit_password.text() else: - message = "Please enter your password" - - while not self.account.check_password(password): - password = QInputDialog.getText(self, "Account password", - message, - QLineEdit.Password) - message = "Error, wrong password. Please enter your password" - if password[1] is True: - password = password[0] - else: - return + password = self.password_asker.ask() + if password == "": + return + nb_wallets = self.spinbox_wallets.value() self.account.set_walletpool_size(nb_wallets, password) self.app.save(self.account) diff --git a/src/cutecoin/gui/process_cfg_community.py b/src/cutecoin/gui/process_cfg_community.py index 5cf49b38ec9f4f68c9f2dcd0441ea9ea623a3918..b58215caa53b80885a85904fef1d1962a7864dd5 100644 --- a/src/cutecoin/gui/process_cfg_community.py +++ b/src/cutecoin/gui/process_cfg_community.py @@ -88,7 +88,7 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog): Dialog to configure or add a community ''' - def __init__(self, account, community, default_node=None): + def __init__(self, account, community, password_asker, default_node=None): ''' Constructor ''' @@ -96,6 +96,7 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog): self.setupUi(self) self.community = community self.account = account + self.password_asker = password_asker self.step = None self.peers = [] @@ -168,18 +169,9 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog): {0}\n \ Would you like to publish the key ?".format(self.account.pubkey)) if reply == QMessageBox.Yes: - password = "" - message = "Please enter your password" - - while not self.account.check_password(password): - password = QInputDialog.getText(self, "Account password", - message, - QLineEdit.Password) - message = "Error, wrong password. Please enter your password" - if password[1] is True: - password = password[0] - else: - return + password = self.password_asker.ask() + if password == "": + return try: self.account.send_pubkey(password, self.community) except ValueError as e: