From 7939fbf69c02847d3393b423ced9b0e5c16a4cbf Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Thu, 15 Jul 2021 12:00:31 +0200 Subject: [PATCH] =?UTF-8?q?Spole=C4=8Dn=C3=A1=20funkce=20na=20kontrolu=20p?= =?UTF-8?q?=C5=99=C3=ADpustnosti=20hesla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mo/users.py | 7 +++++++ mo/web/auth.py | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mo/users.py b/mo/users.py index 6fef5ec9..e87c5de6 100644 --- a/mo/users.py +++ b/mo/users.py @@ -165,6 +165,13 @@ def user_by_uid(uid: int) -> db.User: return db.get_session().query(db.User).get(uid) +password_help = 'Heslo musí mít alespoň 8 znaků. Doporučujeme kombinovat velká a malá písmena a číslice.' + + +def validate_password(passwd: str) -> bool: + return len(passwd) >= 8 + + def set_password(user: db.User, passwd: str): salt = bcrypt.gensalt() hashed = bcrypt.hashpw(passwd.encode('utf-8'), salt) diff --git a/mo/web/auth.py b/mo/web/auth.py index 1185c38e..f5634d1f 100644 --- a/mo/web/auth.py +++ b/mo/web/auth.py @@ -127,7 +127,7 @@ def handle_need_login(e): class ResetForm(FlaskForm): email = EmailField('E-mail', description='Účet pro který se nastavuje nové heslo', render_kw={"disabled": "disabled"}) token = wtforms.HiddenField() - passwd = wtforms.PasswordField('Nové heslo', description='Heslo musí mít alespoň 8 znaků. Doporučujeme kombinovat velká a malá písmena a číslice.') + passwd = wtforms.PasswordField('Nové heslo', description=mo.users.password_help) submit = wtforms.SubmitField('Nastavit heslo') cancel = wtforms.SubmitField('Zrušit obnovu hesla') @@ -155,8 +155,8 @@ def reset(): db.get_session().commit() flash('Obnova hesla zrušena', 'warning') return redirect(url_for('login')) - elif len(form.passwd.data) < 8: - flash('Heslo musí být aspoň 8 znaků dlouhé', 'danger') + elif not mo.users.validate_password(form.passwd.data): + flash(mo.users.password_help, 'danger') return render_template('reset.html', form=form) else: mo.users.do_reset_password(user) -- GitLab