Source code for hawat.blueprints.auth_pwd.forms

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# -------------------------------------------------------------------------------
# This file is part of Mentat system (https://mentat.cesnet.cz/).
#
# Copyright (C) since 2011 CESNET, z.s.p.o (http://www.ces.net/)
# Use of this source is governed by the MIT license, see LICENSE file.
# -------------------------------------------------------------------------------


"""
This module contains custom developer login form for Hawat.
"""

__author__ = "Jan Mach <jan.mach@cesnet.cz>"
__credits__ = "Pavel Kácha <pavel.kacha@cesnet.cz>, Andrea Kropáčová <andrea.kropacova@cesnet.cz>"

import wtforms
import flask_wtf
from wtforms_sqlalchemy.fields import QuerySelectMultipleField
from flask_babel import lazy_gettext

from hawat.forms import check_login, check_unique_login, get_available_groups, check_null_character
from hawat.blueprints.users.forms import BaseUserAccountForm


[docs]class LoginForm(flask_wtf.FlaskForm): """ Class representing classical password authentication login form. """ login = wtforms.StringField( lazy_gettext('Login:'), validators=[ wtforms.validators.DataRequired(), wtforms.validators.Length(min=3, max=50), check_login, check_null_character ] ) password = wtforms.PasswordField( lazy_gettext('Password:'), validators=[ wtforms.validators.DataRequired(), wtforms.validators.Length(min=8), ] ) submit = wtforms.SubmitField( lazy_gettext('Login') )
[docs]class RegisterUserAccountForm(BaseUserAccountForm): """ Class representing classical account registration form. """ login = wtforms.StringField( lazy_gettext('Login:'), validators=[ wtforms.validators.DataRequired(), wtforms.validators.Length(min=3, max=50), check_login, check_unique_login, check_null_character ] ) memberships_wanted = QuerySelectMultipleField( lazy_gettext('Requested group memberships:'), query_factory=get_available_groups ) justification = wtforms.TextAreaField( lazy_gettext('Justification:'), validators=[ wtforms.validators.DataRequired(), wtforms.validators.Length(min=10, max=500) ] ) password = wtforms.PasswordField( lazy_gettext('Password:'), validators=[ wtforms.validators.DataRequired(), wtforms.validators.Length(min=8), ] ) password2 = wtforms.PasswordField( lazy_gettext('Repeat Password:'), validators=[ wtforms.validators.DataRequired(), wtforms.validators.EqualTo('password'), ] )