qml: show result dialog after password change
This commit is contained in:
@@ -450,14 +450,12 @@ Pane {
|
||||
infotext: qsTr('If you forget your password, you\'ll need to restore from seed. Please make sure you have your seed stored safely')
|
||||
})
|
||||
dialog.accepted.connect(function() {
|
||||
Daemon.setPassword(dialog.password)
|
||||
})
|
||||
dialog.open()
|
||||
}
|
||||
function onPasswordChangeFailed() {
|
||||
var dialog = app.messageDialog.createObject(app, {
|
||||
title: qsTr('Error'),
|
||||
text: qsTr('Password change failed')
|
||||
var success = Daemon.setPassword(dialog.password)
|
||||
var done_dialog = app.messageDialog.createObject(app, {
|
||||
title: success ? qsTr('Success') : qsTr('Error'),
|
||||
text: success ? qsTr('Password changed') : qsTr('Password change failed')
|
||||
})
|
||||
done_dialog.open()
|
||||
})
|
||||
dialog.open()
|
||||
}
|
||||
@@ -501,7 +499,12 @@ Pane {
|
||||
infotext: qsTr('If you forget your password, you\'ll need to restore from seed. Please make sure you have your seed stored safely')
|
||||
})
|
||||
dialog.accepted.connect(function() {
|
||||
Daemon.currentWallet.setPassword(dialog.password)
|
||||
var success = Daemon.currentWallet.setPassword(dialog.password)
|
||||
var done_dialog = app.messageDialog.createObject(app, {
|
||||
title: success ? qsTr('Success') : qsTr('Error'),
|
||||
text: success ? qsTr('Password changed') : qsTr('Password change failed')
|
||||
})
|
||||
done_dialog.open()
|
||||
})
|
||||
dialog.open()
|
||||
}
|
||||
|
||||
@@ -128,7 +128,6 @@ class QEDaemon(AuthMixin, QObject):
|
||||
newWalletWizardChanged = pyqtSignal()
|
||||
serverConnectWizardChanged = pyqtSignal()
|
||||
loadingChanged = pyqtSignal()
|
||||
passwordChangeFailed = pyqtSignal()
|
||||
requestNewPassword = pyqtSignal()
|
||||
|
||||
walletLoaded = pyqtSignal([str,str], arguments=['name','path'])
|
||||
@@ -322,14 +321,14 @@ class QEDaemon(AuthMixin, QObject):
|
||||
else:
|
||||
self.currentWallet.requestNewPassword.emit()
|
||||
|
||||
@pyqtSlot(str)
|
||||
@pyqtSlot(str, result=bool)
|
||||
def setPassword(self, password):
|
||||
assert self._use_single_password
|
||||
assert password
|
||||
if not self.daemon.update_password_for_directory(old_password=self._password, new_password=password):
|
||||
self.passwordChangeFailed.emit()
|
||||
return
|
||||
return False
|
||||
self._password = password
|
||||
return True
|
||||
|
||||
@pyqtProperty(QENewWalletWizard, notify=newWalletWizardChanged)
|
||||
def newWalletWizard(self):
|
||||
|
||||
@@ -673,7 +673,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
|
||||
except InvalidPassword as e:
|
||||
return False
|
||||
|
||||
@pyqtSlot(str)
|
||||
@pyqtSlot(str, result=bool)
|
||||
def setPassword(self, password):
|
||||
if password == '':
|
||||
password = None
|
||||
@@ -682,16 +682,18 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
|
||||
|
||||
# HW wallet not supported yet
|
||||
if storage.is_encrypted_with_hw_device():
|
||||
return
|
||||
return False
|
||||
|
||||
current_password = self.password if self.password != '' else None
|
||||
|
||||
try:
|
||||
self._logger.info(f'PW change from {current_password} to {password}')
|
||||
self._logger.info('setting new password')
|
||||
self.wallet.update_password(current_password, password, encrypt_storage=True)
|
||||
self.password = password
|
||||
return True
|
||||
except InvalidPassword as e:
|
||||
self._logger.exception(repr(e))
|
||||
return False
|
||||
|
||||
@pyqtSlot(str)
|
||||
def importAddresses(self, addresslist):
|
||||
|
||||
Reference in New Issue
Block a user