Blame pagure/login_forms.py

Pierre-Yves Chibon 33b534
# -*- coding: utf-8 -*-
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
"""
Pierre-Yves Chibon 362b15
 (c) 2014-2016 - Copyright Red Hat Inc
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
 Authors:
Pierre-Yves Chibon 70d41a
   Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
"""
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
# # pylint cannot import flask extension correctly
Pierre-Yves Chibon 22a554
# pylint: disable=no-name-in-module
Pierre-Yves Chibon 22a554
# pylint: disable=import-error
Pierre-Yves Chibon 70d41a
# # The forms here don't have specific methods, they just inherit them.
Pierre-Yves Chibon 22a554
# pylint: disable=too-few-public-methods
Pierre-Yves Chibon 70d41a
# # We apparently use old style super in our __init__
Pierre-Yves Chibon 22a554
# pylint: disable=super-on-old-class
Pierre-Yves Chibon 70d41a
# # Couple of our forms do not even have __init__
Pierre-Yves Chibon 22a554
# pylint: disable=no-init
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 67d1cc
from __future__ import unicode_literals, absolute_import
Aurélien Bompard dcf6f6
Pierre-Yves Chibon 2011e2
import wtforms
Pierre-Yves Chibon 9c2953
Pierre-Yves Chibon 5a5352
try:
Pierre-Yves Chibon 5a5352
    from flask_wtf import FlaskForm as FlaskForm
Pierre-Yves Chibon 2011e2
except ImportError:
Pierre-Yves Chibon 5a5352
    from flask_wtf import Form as FlaskForm
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
def same_password(form, field):
Pierre-Yves Chibon 9c2953
    """ Check if the data in the field is the same as in the password field.
Pierre-Yves Chibon 9c2953
    """
Pierre-Yves Chibon 70d41a
    if field.data != form.password.data:
Pierre-Yves Chibon 0653e6
        raise wtforms.validators.ValidationError(
Pierre-Yves Chibon 9c2953
            "Both password fields should be equal"
Pierre-Yves Chibon 9c2953
        )
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 5a5352
class LostPasswordForm(FlaskForm):
Pierre-Yves Chibon 70d41a
    """ Form to ask for a password change. """
Pierre-Yves Chibon 9c2953
Lenka Segura 643d50
    username = wtforms.StringField(
Pierre-Yves Chibon 70d41a
        'username  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 5a5352
class ResetPasswordForm(FlaskForm):
Pierre-Yves Chibon 70d41a
    """ Form to reset one's password in the local database. """
Pierre-Yves Chibon 9c2953
Pierre-Yves Chibon 70d41a
    password = wtforms.PasswordField(
Pierre-Yves Chibon 70d41a
        'Password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
    confirm_password = wtforms.PasswordField(
Pierre-Yves Chibon 70d41a
        'Confirm password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired(), same_password],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 5a5352
class LoginForm(FlaskForm):
Pierre-Yves Chibon 70d41a
    """ Form to login via the local database. """
Pierre-Yves Chibon 9c2953
Lenka Segura 643d50
    username = wtforms.StringField(
Pierre-Yves Chibon 70d41a
        'username  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
    password = wtforms.PasswordField(
Pierre-Yves Chibon 70d41a
        'Password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 70d41a
Pierre-Yves Chibon 5a5352
class NewUserForm(FlaskForm):
Pierre-Yves Chibon 70d41a
    """ Form to add a new user to the local database. """
Pierre-Yves Chibon 9c2953
Lenka Segura 643d50
    user = wtforms.StringField(
Pierre-Yves Chibon 70d41a
        'username  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
Pierre-Yves Chibon 70d41a
    )
Lenka Segura 643d50
    fullname = wtforms.StringField(
Lenka Segura 643d50
        "Full name", [wtforms.validators.Optional()]
Lenka Segura 643d50
    )
Lenka Segura 643d50
    email_address = wtforms.StringField(
Pierre-Yves Chibon 70d41a
        'Email address  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired(), wtforms.validators.Email()],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
    password = wtforms.PasswordField(
Pierre-Yves Chibon 70d41a
        'Password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
Pierre-Yves Chibon 70d41a
    )
Pierre-Yves Chibon 70d41a
    confirm_password = wtforms.PasswordField(
Pierre-Yves Chibon 70d41a
        'Confirm password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired(), same_password],
Pierre-Yves Chibon 70d41a
    )
farhaanbukhsh 646231
Pierre-Yves Chibon 0653e6
Pierre-Yves Chibon 5a5352
class ChangePasswordForm(FlaskForm):
farhaanbukhsh 646231
    """ Form to reset one's password in the local database. """
Pierre-Yves Chibon 9c2953
farhaanbukhsh 646231
    old_password = wtforms.PasswordField(
farhaanbukhsh 646231
        'Old Password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
farhaanbukhsh 646231
    )
farhaanbukhsh 646231
    password = wtforms.PasswordField(
farhaanbukhsh 646231
        'Password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired()],
farhaanbukhsh 646231
    )
farhaanbukhsh 646231
    confirm_password = wtforms.PasswordField(
farhaanbukhsh 646231
        'Confirm password  *',
Lenka Segura e2e146
        [wtforms.validators.DataRequired(), same_password],
farhaanbukhsh 646231
    )