diff --git a/mo/web/fields.py b/mo/web/fields.py index e6f21da098528f367c161d9421dc366ee78b8135..1e2305093c5faa509b6594ba83624b5a3fc4eedb 100644 --- a/mo/web/fields.py +++ b/mo/web/fields.py @@ -138,3 +138,24 @@ class School(Place): field.place = mo.users.validate_and_find_school(field.data) except mo.CheckError as e: field.place_error = str(e) + + +class NewPassword(wtforms.PasswordField): + def __init__(self, label="Nové heslo", validators=None, **kwargs): + super().__init__(label, validators, **kwargs) + + def pre_validate(field, form): + if field.data: + if not mo.users.validate_password(field.data): + raise wtforms.ValidationError(mo.users.password_help) + + +class RepeatPassword(wtforms.PasswordField): + """Pro validaci hledá ve formuláři form.new_passwd a s ním porovnává.""" + + def __init__(self, label="Zopakujte heslo", validators=None, **kwargs): + super().__init__(label, validators, **kwargs) + + def pre_validate(field, form): + if field.data != form.new_passwd.data: + raise wtforms.ValidationError('Hesla se neshodují.')