Browse Source

Update password_dialog.py

Added a restriction on password. It should be at least 6 characters, contain an Upper case letter and a special character.
283
azhar3339 10 years ago
parent
commit
d12bd4fffd
  1. 29
      gui/qt/password_dialog.py

29
gui/qt/password_dialog.py

@ -20,6 +20,7 @@ from PyQt4.QtGui import *
from PyQt4.QtCore import * from PyQt4.QtCore import *
from electrum.i18n import _ from electrum.i18n import _
from util import * from util import *
import re
@ -60,7 +61,9 @@ def make_password_dialog(self, wallet, msg, new_pass=True):
grid.addWidget(self.pw, 0, 1) grid.addWidget(self.pw, 0, 1)
grid.addWidget(QLabel(_('New Password') if new_pass else _('Password')), 1, 0) grid.addWidget(QLabel(_('New Password') if new_pass else _('Password')), 1, 0)
self.password_help = HelpButton(_('Password must be at least 6 characters') + '\n\n' + _('It should contain a number, an uppercase alphabet and a special character'))
grid.addWidget(self.new_pw, 1, 1) grid.addWidget(self.new_pw, 1, 1)
grid.addWidget(self.password_help,1,4)
grid.addWidget(QLabel(_('Confirm Password')), 2, 0) grid.addWidget(QLabel(_('Confirm Password')), 2, 0)
grid.addWidget(self.conf_pw, 2, 1) grid.addWidget(self.conf_pw, 2, 1)
@ -84,12 +87,6 @@ def run_password_dialog(self, wallet, parent):
new_password = unicode(self.new_pw.text()) new_password = unicode(self.new_pw.text())
new_password2 = unicode(self.conf_pw.text()) new_password2 = unicode(self.conf_pw.text())
#Check the length
if len(new_password) < 6 :
QMessageBox.warning(parent, _('Error'), _('Password id too short'), _('OK'))
# Retry
return run_password_dialog(self, wallet, parent)
if new_password != new_password2: if new_password != new_password2:
QMessageBox.warning(parent, _('Error'), _('Passwords do not match'), _('OK')) QMessageBox.warning(parent, _('Error'), _('Passwords do not match'), _('OK'))
# Retry # Retry
@ -97,6 +94,26 @@ def run_password_dialog(self, wallet, parent):
if not new_password: if not new_password:
new_password = None new_password = None
else:
#Check for password strength if user chooses to enter a password
#Check the length
if len(new_password) < 6 :
QMessageBox.warning(parent, _('Error'), _('Password is too short. It must be at least 6 characters') + '\n\n' + _('Click help beside the password button for more information'), _('OK'))
# Retry
return run_password_dialog(self, wallet, parent)
#Check for uppercase characters
if new_password.islower() or new_password.isnumeric():
QMessageBox.warning(parent, _('Error'), _('Password must contain at least one Upper case alphabet') + '\n\n' + _('Click help beside the password button for more information'), _('OK'))
# Retry
return run_password_dialog(self, wallet, parent)
#Check for special characters
if (re.match('^[a-zA-Z0-9]*$',new_password)):
QMessageBox.warning(parent, _('Error'), _('Password must contain at least one special character') + '\n\n' + _('Click help beside the password button for more information'), _('OK'))
# Retry
return run_password_dialog(self, wallet, parent)
return True, password, new_password return True, password, new_password

Loading…
Cancel
Save