Add password quality
This commit is contained in:
parent
7ddce709df
commit
fa751a207e
8
conf.py
8
conf.py
|
@ -79,13 +79,13 @@ LICENSE_ES = LICENSE_EN
|
|||
|
||||
INFO = {
|
||||
'en': {
|
||||
'display_name': 'My first extension',
|
||||
'description': 'My great extension',
|
||||
'display_name': 'ZAZ Pass',
|
||||
'description': 'Generate passwords',
|
||||
'license': LICENSE_EN,
|
||||
},
|
||||
'es': {
|
||||
'display_name': 'Mi primer extensión',
|
||||
'description': 'Mi gran extensión',
|
||||
'display_name': 'ZAZ Pass',
|
||||
'description': 'Generar contraseñas',
|
||||
'license': LICENSE_ES,
|
||||
},
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -3,8 +3,8 @@
|
|||
<identifier value="net.elmau.zaz.pass"/>
|
||||
<version value="0.1.0"/>
|
||||
<display-name>
|
||||
<name lang="en">My first extension</name>
|
||||
<name lang="es">Mi primer extensión</name>
|
||||
<name lang="en">ZAZ Pass</name>
|
||||
<name lang="es">ZAZ Pass</name>
|
||||
</display-name>
|
||||
<extension-description>
|
||||
<src lang="en" xlink:href="description/desc_en.txt"/>
|
||||
|
|
|
@ -1 +1 @@
|
|||
My great extension
|
||||
Generate passwords
|
|
@ -1 +1 @@
|
|||
Mi gran extensión
|
||||
Generar contraseñas
|
|
@ -100,6 +100,16 @@ def _password_copy():
|
|||
return
|
||||
|
||||
|
||||
def _get_quality(strength):
|
||||
if strength <= 0.33:
|
||||
quality = _('Week')
|
||||
elif strength <= 0.66:
|
||||
quality = _('Medium')
|
||||
else:
|
||||
quality = _('Excellent')
|
||||
return quality
|
||||
|
||||
|
||||
def _password_generate(id_extension):
|
||||
config = app.get_config('setting', prefix=PREFIX)
|
||||
dialog = _create_dialog(id_extension)
|
||||
|
@ -121,7 +131,9 @@ def _password_generate(id_extension):
|
|||
dialog.chk_punctuation.value = punctuation
|
||||
|
||||
dialog.txt_length.value = length
|
||||
dialog.txt_password.value = _generate(dialog)
|
||||
stats = PasswordStats(_generate(dialog))
|
||||
dialog.txt_password.value = stats.password
|
||||
dialog.lbl_quality.value = _get_quality(stats.strength())
|
||||
dialog.open()
|
||||
return
|
||||
|
||||
|
@ -171,6 +183,7 @@ class Controllers(object):
|
|||
def _new_password(self, save=True):
|
||||
stats = PasswordStats(_generate(self.d))
|
||||
self.d.txt_password.value = stats.password
|
||||
self.d.lbl_quality.value = _get_quality(stats.strength())
|
||||
if save:
|
||||
self._save_config()
|
||||
return
|
||||
|
@ -203,13 +216,14 @@ class Controllers(object):
|
|||
@app.catch_exception
|
||||
def _create_dialog(id_extension):
|
||||
BUTTON_WH = 16
|
||||
CHK_HEIGHT = 10
|
||||
CHK_WIDTH = 25
|
||||
|
||||
attr = dict(
|
||||
Name = 'Dialog',
|
||||
Title = _('Generate Password'),
|
||||
Width = 200,
|
||||
Height = 100,
|
||||
Height = 120,
|
||||
)
|
||||
dialog = app.create_dialog(attr)
|
||||
dialog.id = id_extension
|
||||
|
@ -266,7 +280,7 @@ def _create_dialog(id_extension):
|
|||
Spin = True,
|
||||
Value = 25,
|
||||
ValueStep = 1,
|
||||
ValueMin = 10,
|
||||
ValueMin = 5,
|
||||
ValueMax = 100,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
@ -276,7 +290,7 @@ def _create_dialog(id_extension):
|
|||
Name = 'chk_letters',
|
||||
Label = 'A-Z',
|
||||
Width = CHK_WIDTH,
|
||||
Height = BUTTON_WH,
|
||||
Height = CHK_HEIGHT,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
||||
|
@ -285,7 +299,7 @@ def _create_dialog(id_extension):
|
|||
Name = 'chk_letters2',
|
||||
Label = 'a-z',
|
||||
Width = CHK_WIDTH,
|
||||
Height = BUTTON_WH,
|
||||
Height = CHK_HEIGHT,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
||||
|
@ -294,7 +308,7 @@ def _create_dialog(id_extension):
|
|||
Name = 'chk_digits',
|
||||
Label = '0-9',
|
||||
Width = CHK_WIDTH,
|
||||
Height = BUTTON_WH,
|
||||
Height = CHK_HEIGHT,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
||||
|
@ -303,7 +317,31 @@ def _create_dialog(id_extension):
|
|||
Name = 'chk_punctuation',
|
||||
Label = string.punctuation,
|
||||
Width = CHK_WIDTH * 4,
|
||||
Height = CHK_HEIGHT,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
||||
attr = dict(
|
||||
Type = 'Label',
|
||||
Name = 'lbl_title_quality',
|
||||
Label = _('Password Quality:'),
|
||||
Width = 75,
|
||||
Height = BUTTON_WH,
|
||||
Border = app.Border.BORDER,
|
||||
Align = app.RIGHT,
|
||||
VerticalAlign = app.MIDDLE,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
||||
attr = dict(
|
||||
Type = 'Label',
|
||||
Name = 'lbl_quality',
|
||||
Label = _('Poor'),
|
||||
Width = 35,
|
||||
Height = BUTTON_WH,
|
||||
Border = app.Border.BORDER,
|
||||
Align = app.CENTER,
|
||||
VerticalAlign = app.MIDDLE,
|
||||
)
|
||||
dialog.add_control(attr)
|
||||
|
||||
|
@ -338,6 +376,9 @@ def _create_dialog(id_extension):
|
|||
dialog.chk_digits.move(dialog.chk_letters2, x=3, y=0)
|
||||
dialog.chk_punctuation.move(dialog.chk_digits, x=3, y=0)
|
||||
|
||||
dialog.lbl_title_quality.move(dialog.chk_letters)
|
||||
dialog.lbl_quality.move(dialog.lbl_title_quality, x=3, y=0)
|
||||
|
||||
dialog.center(dialog.cmd_insert, y=-5)
|
||||
dialog.center(dialog.cmd_close, y=-5)
|
||||
dialog.center((dialog.cmd_close, dialog.cmd_insert))
|
||||
|
|
Loading…
Reference in New Issue