Esempio n. 1
0
class Signup(Form):
    email = TextField('Email address', [
        validators.Required(
            'It’s okay, we won’t email you unless you want us to.'
        ),
        validators.Email('Um, that doesn’t look like an email address.'),
    ])
    password = PasswordField('Password', [
        validators.Required('How else will we know it’s really you?'),
        validators.EqualTo(
            'retype',
            message=
            'If you can’t type it twice now, you’ll never be able to log in with it.'
        )
    ])
    retype = PasswordField('Password (again)')
    consent = BooleanField('Accept the Terms', [
        validators.Required('Is there something you don’t agree with?')
    ])

    def validate_email(form, field):
        if models.User.query.filter_by(email=field.data).count():
            raise validators.ValidationError(
                'Looks like you’ve already registered. Try logging in instead.'
            )
Esempio n. 2
0
class RegistrationForm(Form):
    email = TextField('Email Address', [validators.Length(min=6, max=35)])
    password = PasswordField('New Password', [
        validators.Required(),
        validators.EqualTo('confirm', message='Passwords must match')
    ])
    confirm = PasswordField('Repeat Password')
Esempio n. 3
0
class Password(Form):
    password = PasswordField('Password', [
        validators.Required('How else will we know it’s really you?'),
    ])
    retype = PasswordField('Password (again)', [
        validators.EqualTo('password', message='If you can’t type it twice now, you’ll never be able to log in with it.')
    ])
Esempio n. 4
0
class ResetPasswordForm(Form):
    password = f.PasswordField('New password', [
        v.Required(),
        v.Length(min=8, message="It's probably best if your password is longer than 8 characters."),
        v.EqualTo('confirm', message="Passwords must match.")
    ])
    confirm = f.PasswordField('Confirm password')
Esempio n. 5
0
class ChangePassForm(Form):
    old_password = PasswordField('Password', [validators.Required()])
    password = PasswordField('Password', [
        validators.Length(min=6, max=35),
        validators.Required(),
        validators.EqualTo('confirm', message='Passwords must match')
    ])
    confirm = PasswordField('Repeat Password')
Esempio n. 6
0
    class RegistrationForm(UserForm):
        LANGUAGES = [get_locale().language]

        password = PasswordField(lazy_gettext('login.placeholder.password'), [
            validators.Required(),
            validators.EqualTo(
                'confirm', message=lazy_gettext('signup.error.passwordsmatch'))
        ])
        confirm = PasswordField(
            lazy_gettext('signup.placeholder.confirmpassword'))
Esempio n. 7
0
class RegistrationForm(Form):
    username = TextField('Username', [validators.Length(min=4, max=25)])
    email = TextField('Email Address', [validators.Length(min=6, max=35)])
    zipcode = TextField('Zipcode', [validators.Length(min=5, max=35)])
    password = PasswordField('New Password', [
        validators.Required(),
        validators.EqualTo('confirm', message='Passwords must match')
        ])
    confirm = PasswordField('Repeat Password')
    accept_tos = BooleanField('I accept the TOS', [validators.Required()])
Esempio n. 8
0
class RegisterForm(Form):
    w = TextField('Username', [validators.Length(min=3, max=25), existscheck])
    n = TextField('Email Address', [
        validators.Length(min=3, max=35),
        validators.Email(message='Must be a valid email address')
    ])
    s = PasswordField('Password', [
        validators.Required(),
        validators.EqualTo('c', message='Passwords must match')
    ])
    c = PasswordField('Repeat Password')
Esempio n. 9
0
class SetUser(wtforms.form.Form):
    email = TextField('Email address', [
        validators.Required("It's okay, we won't email you unless you want us to."),
        validators.Email("Um, that doesn't look like an email address."),
    ])
    password = PasswordField('Password', [
        validators.Required("How else will we know it's really you?"),
    ])
    retype = PasswordField('Password (again)', [
        validators.EqualTo('password', message="If you can't type it twice now, you'll never be able to log in with it."),
    ])
Esempio n. 10
0
class ProfileForm(TranslatedForm):
    #language = SelectField(_(u'Language'), choices=[("fr","Francais"), ("en","English")])
    language = SelectField(
        _(u'Language'),
        choices=[
            (lang_code, lang_name)
            for lang_code, lang_name in app.config['LANGUAGES'].iteritems()
        ])
    password = PasswordField(
        _('New Password'),
        [validators.EqualTo('confirm', message=_('Passwords must match'))])
    confirm = PasswordField(_('Repeat Password'))
Esempio n. 11
0
File: forms.py Progetto: adrbin/wiki
class RegistrationForm(Form):
    username = TextField(u'Nazwa użytkownika',
                         [validators.Length(min=4, max=25)],
                         id="username")
    email = TextField(u'Adres email', [validators.Length(min=6, max=35)],
                      id="email")
    password = PasswordField(u'Nowe hasło', [
        validators.Required(),
        validators.EqualTo('confirm', message='Hasła muszą być takie same')
    ],
                             id="password")
    confirm = PasswordField(u'Powtórz hasło', id="confirm")
Esempio n. 12
0
class RegistrationForm(Form):
    email = fields.TextField('Email Address',
        validators=[Required(), Email(), Regexp('[^@]+@[^@]+[fsu]+\.[edu]+')])
    consent = fields.BooleanField(validators=[Required()])
    password = fields.PasswordField('New Password', [
        validators.Required(), validators.Length(min=8, max=20),
        validators.EqualTo('confirm', message='Passwords must match')
    ])
    confirm = fields.PasswordField(validators=[Required()])

    def validate_email(self, field):
        if db.session.query(User).filter_by(email=self.email.data).count() > 0:
            raise validators.ValidationError('Duplicate email')
Esempio n. 13
0
class UserProfileForm(UserRegisterForm):
    password = PasswordField('password', [
        validators.Optional(),
        validators.Length(min=6, max=64),
        validators.EqualTo('confirm', message='Passwords must match')
    ],
                             filters=[strip_filter])
    per_page = SelectField('per_page',
                           coerce=int,
                           choices=[(n, n) for n in range(10, 21)])
    suggestion = BooleanField('suggestion', default=True)
    recently = SelectField('recently',
                           coerce=int,
                           choices=[(n, n) for n in range(5)])
Esempio n. 14
0
class UserRegisterForm(Form):
    username = TextField('username', [validators.Length(min=4, max=32)],
                         filters=[strip_filter])
    email = TextField('email', [
        validators.Length(min=4, max=320),
        validators.Email(message='Not a valid email address')
    ],
                      filters=[strip_filter])
    password = PasswordField('password', [
        validators.Length(min=6, max=64),
        validators.EqualTo('confirm', message='Passwords must match')
    ],
                             filters=[strip_filter])
    confirm = PasswordField('confirm', filters=[strip_filter])
Esempio n. 15
0
class PasswordForm(Form):
    old_password = PasswordField('Old Password',
                                 validators=[validators.Length(min=8, max=50)])
    password = PasswordField('Password',
                             validators=[
                                 validators.LengthOrEmpty(min=8, max=50),
                                 validators.CrackLib()
                             ])
    pw_confirm = PasswordField('Confirm Password',
                               validators=[
                                   validators.LengthOrEmpty(min=8, max=50),
                                   validators.EqualTo(
                                       'password',
                                       message='Passwords do not match.')
                               ])
Esempio n. 16
0
class ResetForm(Form):
    password = PasswordField('Password',
                             validators=[
                                 validators.Required(),
                                 validators.Length(min=8, max=50),
                                 validators.CrackLib()
                             ])
    pw_confirm = PasswordField('Confirm Password',
                               validators=[
                                   validators.Required(),
                                   validators.Length(min=8, max=50),
                                   validators.EqualTo(
                                       'password',
                                       message='Passwords do not match.')
                               ])
Esempio n. 17
0
class UserProfileForm(UserRegisterForm):
    password = PasswordField('Password',
                             [validators.Optional(),
                              validators.Length(min=6, max=64),
                              validators.EqualTo('confirm',
                                                 message=pmm)],
                             filters=[strip_filter])
    per_page = SelectField('Items per page',
                           coerce=int,
                           choices=[(n, n) for n in range(10, 21)])
    suggestion = SelectField('Show suggestions',
                             coerce=int,
                             choices=[(n, n) for n in range(5)])
    recently = SelectField('Recently added',
                           coerce=int,
                           choices=[(n, n) for n in range(5)])
Esempio n. 18
0
class SignupForm(Form):
    username = f.TextField('Username', [
        v.Length(min=3, max=128),
        v.Regexp(r'^[^@:]*$', message="Username shouldn't contain '@' or ':'")
    ])
    email = html5.EmailField('Email address', [
        v.Length(min=3, max=128),
        v.Email(message="This should be a valid email address.")
    ])
    password = f.PasswordField('Password', [
        v.Required(),
        v.Length(min=8, message="It's probably best if your password is longer than 8 characters."),
        v.EqualTo('confirm', message="Passwords must match.")
    ])
    confirm = f.PasswordField('Confirm password')

    # Will only work if set up in config (see http://packages.python.org/Flask-WTF/)
    captcha = f.RecaptchaField('Captcha')
Esempio n. 19
0
class AddUserForm(Form):
    user = TextField(
        'user',
        validators=[validators.Required(),
                    validators.Length(min=3, max=64)])
    email = TextField('email',
                      validators=[validators.Required(),
                                  validators.Email()])
    password = PasswordField('password',
                             validators=[
                                 validators.Required(),
                                 validators.Length(min=3, max=64),
                                 validators.EqualTo(
                                     'confirm',
                                     'Both passwords must be equal.')
                             ])
    confirm = PasswordField('confirm')
    roles = MultiCheckboxField('roles',
                               validators=[validators.Required()],
                               coerce=int)
Esempio n. 20
0
class UpdateProfileFormFull(Form):
    updatedProfileImage = FileField(
        "Photo Upload",
        validators=[
            file_allowed(
                images,
                message=
                "The file you selected does not appear to be an image, please try again or contact support"
            )
        ])
    location = TextField()
    slogan = TextField(validators=[
        validators.Length(
            min=0,
            max=140,
            message=
            "Please keep your slogan short, 140 characters or less, please.")
    ])
    description = TextField(validators=[
        validators.Length(
            min=0,
            max=400,
            message="Please limit your description to 400 characters")
    ])
    current_password = TextField(validators=[
        validators.Length(min=0, max=app.config['PASSWORD_MAX_LENGTH'])
    ])
    user_password = TextField(validators=[
        validators.Length(min=0, max=app.config['PASSWORD_MAX_LENGTH'])
    ])
    user_password_confirmation = TextField(validators=[
        validators.Length(min=0, max=app.config['PASSWORD_MAX_LENGTH']),
        validators.EqualTo(
            'user_password',
            message='The passwords you have entered do not match')
    ])

    @property
    def hasImage(self):
        return self.updatedProfileImage.data != None

    def validate(self):
        self.rv = False
        rv = Form.validate(self)
        self.rv = rv
        if not rv:
            return False

        if len(self.user_password.data) or len(
                self.user_password_confirmation.data) or len(
                    self.current_password.data):  #user has entered a new pw
            if not self.user_password.data == self.user_password_confirmation.data:  #not the password
                flash("The passwords you have entered do not match", "error")
                self.rv = False
            if len(self.user_password.data
                   ) < app.config['PASSWORD_MIN_LENGTH'] and len(
                       self.user_password.data):
                flash(
                    "The new password you have entered is simply too short, please enter a longer password",
                    "error")
                self.rv = False
            if self.rv:  #password length sufficient and passwords match
                if current_user.validatePassword(self.current_password.data):
                    current_user.updatePassword(self.user_password)
                    flash("Your password has been updated", "message")
                else:
                    flash("It seems you have entered an incorrect password",
                          "error")
                    self.rv = False

        if not self.rv:  #if we failed to change password, do not process the rest of the form
            return False
        #TODO: this code is repeated, inheritance seemed to break the cleaner version though
        if len(self.slogan.data) and self.slogan.data != current_user.slogan:
            current_user.slogan = self.slogan.data
            flash("Your slogan has been updated", "message")
        if len(self.description.data
               ) and self.description.data != current_user.description:
            current_user.description = self.description.data
            flash("Your description has been updated", "message")
        if len(self.location.data
               ) and self.location.data != current_user.location:
            current_user.location = self.location.data
            flash("Your location has been updated", "message")

        db.session.commit()
        return True
Esempio n. 21
0
def edit_user(uid=-1):
    if uid == -1:
        return redirect(url_for('edit_user', uid=g.user.uid))
    user = User.query.filter(User._uid == uid).all()
    if len(user) == 0:
        flash('User not found!')
        return redirect(url_for("index"))
    user = user[0]
    self_editing = False
    sponsor_editing = False
    labstaff_editing = g.user_is_labstaff
    admin_editing = g.user_is_admin

    if not (g.user_is_admin or g.user_is_labstaff):
        # If a user isn't an admin or a sponsor, they can only see their own page
        if 'sponsor' not in g.user.get_domains():
            if g.user.uid != user.uid:
                flash("You have wandered somewhere you do not belong.")
                return redirect(url_for('index'))
            else:
                self_editing = True
        else:
            # If they're not an admin but are a sponsor, they need to be this user's sponsor
            if g.user.username != user.sponsor:
                flash("You have wandered somewhere you do not belong.")
                return redirect(url_for('index'))
            else:
                sponsor_editing = True

    enabled_fields = []

    class EditForm(Form):
        username = TextField(
            'Username', validators=[validators.LengthOrEmpty(min=3, max=8)])
        first_name = TextField('First Name')
        last_name = TextField('Last Name')
        dob = TextField(
            'Date of Birth (MM/DD/YYYY)',
            validators=[
                validators.Date(
                    format='%m/%d/%Y',
                    message='Invalid format. Please use mm/dd/yyyy.')
            ])
        email = TextField('E-mail Address', validators=[validators.Email()])
        sponsor = SelectField('Sponsor',
                              choices=[(s.username, ''.join(
                                  (s.last_name, ', ', s.first_name)))
                                       for s in database.get_sponsors(True)])
        grad_date = TextField(
            'Graduation Date (MM/YYYY)',
            validators=[
                validators.Date(format='%m/%Y',
                                message='Invalid format. Please use mm/yyyy')
            ])
        acct_type = RadioField(
            choices=[('acad', 'Academic'), ('research',
                                            'Research & Academic')])
        comments = TextAreaField('Comments')
        status = TextField('Status')

    # First Name and Last Name
    # if labstaff_editing or admin_editing:

    if user.status in ('pending_sponsor',
                       'pending_labstaff') and g.user_is_admin:
        enabled_fields.extend(['admin_approval', 'acct_type'])
        EditForm.admin_approval = RadioField(
            choices=[('approve',
                      'Approve'), ('deny', 'Deny'), ('postpone', 'Postpone')])
    elif user.status == 'pending_sponsor' and 'sponsor' in g.user.get_domains(
    ):
        enabled_fields.append('sponsor_approval')
        EditForm.sponsor_approval = RadioField(
            choices=[('approve',
                      'Approve'), ('deny', 'Deny'), ('postpone', 'Postpone')])
    else:
        pass

    if g.user_is_admin or g.user_is_labstaff:
        enabled_fields.extend(
            ['comments', 'sponsor', 'email', 'dob', 'first_name', 'last_name'])

    if g.user_is_admin or g.user_is_labstaff or self_editing:
        enabled_fields.extend(['password', 'pw_confirm'])
        EditForm.password = PasswordField('Password',
                                          validators=[
                                              validators.LengthOrEmpty(min=8,
                                                                       max=50),
                                              validators.CrackLib()
                                          ])
        EditForm.pw_confirm = PasswordField(
            'Confirm Password',
            validators=[
                validators.LengthOrEmpty(min=8, max=50),
                validators.EqualTo('password',
                                   message='Passwords do not match.')
            ])
    if self_editing:
        EditForm.current_password = PasswordField(
            'Current Password',
            validators=[
                validators.LengthOrEmpty(max=50),
                validators.Required()
            ])

    form = EditForm()

    if form.is_submitted():
        if form.validate_on_submit():
            if form.username.data != '':
                user.username = form.username.data
            if form.password.data != '':
                user.password = form.password.data
            if form.first_name.data != '':
                user.first_name = form.first_name.data
            if form.last_name.data != '':
                user.last_name = form.last_name.data
            if form.dob.data != '':
                user.dob = form.dob.data  # TODO: Extra validation on birth date?
            if form.email.data != '':
                user.email = form.email.data  # TODO: More validation on email
                # Auto-fill udel id field.
                # Make sure email isn't used
            if form.sponsor.data != '':
                user.sponsor = form.sponsor.data
            if form.grad_date.data != '':
                user.grad_date = form.grad_date.data
            # if form.description.data != '': #not implemented in the user object yet.
            #     user.comments = form.description.data
            if user.is_active() and form.disable.data:
                user.status = 'pending_disable'
            if user.is_disabled() and not form.disable.data:
                user.status = 'reactivate'
            if form.acct_type.data == 'acad':
                user.add_domain('acad')
            else:
                user.add_domains('acad', 'research')
            db.session.add(user)
            db.session.commit()
            flash("User updated.")
        else:
            return render_template(
                "edit_user.html",
                form=form,
                error="There was an error with your submission",
                edit_user=user)

    form = EditForm(ImmutableMultiDict())
    form.username.data = user.username
    form.first_name.data = user.first_name
    form.last_name.data = user.last_name
    form.dob.data = user.dob
    form.email.data = user.email
    form.sponsor.data = user.sponsor
    form.grad_date.data = user.grad_date
    if 'acad' in user.get_domains() and not 'research' in user.get_domains():
        form.acct_type.data = 'acad'
    if 'acad' in user.get_domains() and 'research' in user.get_domains():
        form.acct_type.data = 'research'
    if 'other' in user.get_domains():
        form.acct_type.data = 'other'

    ajax_fields = []
    # Let's build the display form
    sections = ['Account Details']
    display = {'Account Details': []}
    d = display['Account Details']
    # The tuple will go label, field, errors (list)
    d.append(('Username', Markup('<label>%s</label>' % user.username),
              'username', None))
    d.append(('UID', Markup('<label>%s</label>' % user.uid), 'uid', None))

    # First Name and Last Name
    if labstaff_editing or admin_editing:
        d.append(('First Name', form.first_name(), 'first_name',
                  form.first_name.errors))
        ajax_fields.append('first_name')
        d.append(('Last Name', form.last_name(), 'last_name',
                  form.last_name.errors))
        ajax_fields.append('last_name')
    else:
        d.append(('First Name', Markup('<label>%s</label>' % user.first_name),
                  'first_name', None))
        d.append(('Last Name', Markup('<label>%s</label>' % user.last_name),
                  'last_name', None))

    # Date of Birth
    if self_editing or labstaff_editing or admin_editing:
        d.append(
            ('Date of Birth (MM/DD/YYYY)', form.dob(), 'dob', form.dob.errors))
        ajax_fields.append('dob')
    else:
        d.append(('Date of Birth (MM/DD/YYYY)', user.dob, 'dob', None))

    # Change Password
    if self_editing or labstaff_editing or admin_editing:
        sections.append('Change Password')
        pw_block = []
        display['Change Password'] = pw_block
        if self_editing:
            pw_block.append(('Current Password', form.current_password(),
                             'current_password', form.current_password.errors))
            ajax_fields.append('current_password')
        pw_block.append(('New Password', form.password(), 'password',
                         form.password.errors))
        pw_block.append(('Confirm New Password', form.password(), 'pw_confirm',
                         form.pw_confirm.errors))
        ajax_fields.append('password')
        ajax_fields.append('pw_confirm')

    if self_editing:
        d.append(('Current Password:'******'current_password', form.current_password.errors))
    d.append(('Test', Markup('<a href="test">Test</a>'), 'test', None))

    # form.description.data = user.comments
    # if user.is_disabled():
    #     form.disable.data = True
    # else:
    #     form.disable.data = False

    return render_template("edit_user.html",
                           form=form,
                           edit_user=user,
                           enabled_fields=enabled_fields,
                           display=display,
                           sections=sections)
Esempio n. 22
0
class RegisterForm(Form):
    username = TextField('Username',
                         validators=[
                             validators.Required(),
                             validators.Length(min=3, max=8),
                             validators.UniqueColumn(
                                 database.User,
                                 database.User.username,
                                 message='This username is taken.')
                         ])
    password = PasswordField('Password',
                             validators=[
                                 validators.Required(),
                                 validators.Length(min=8, max=50),
                                 validators.CrackLib()
                             ])
    first_name = TextField('First Name', validators=[validators.Required()])
    last_name = TextField('Last Name', validators=[validators.Required()])
    pw_confirm = PasswordField('Confirm Password',
                               validators=[
                                   validators.Required(),
                                   validators.Length(min=8, max=50),
                                   validators.EqualTo(
                                       'password',
                                       message='Passwords do not match.')
                               ])
    dob = TextField('Date of Birth (MM/DD/YYYY)',
                    validators=[
                        validators.Required(),
                        validators.Date(
                            format='%m/%d/%Y',
                            message='Invalid format. Please use mm/dd/yyyy.')
                    ])
    email = TextField(
        'E-mail Address',
        validators=[
            validators.Email(),
            validators.Required(),
            validators.UniqueColumn(
                database.User,
                database.User.email,
                message='This e-mail is in use by another account.')
        ])
    sponsor = SelectField('Sponsor',
                          choices=[(s.username, ''.join(
                              (s.last_name, ', ', s.first_name)))
                                   for s in database.get_sponsors()],
                          validators=[validators.Required()])
    grad_date = TextField('Graduation Date (MM/YYYY)',
                          validators=[
                              validators.Required(),
                              validators.Date(
                                  format='%m/%Y',
                                  message='Invalid format. Please use mm/yyyy')
                          ])
    description = TextAreaField('Description of Usage')
    acct_type = RadioField(choices=[('acad', 'Academic'),
                                    ('research', 'Research & Academic')],
                           validators=[validators.Required()])
    captcha = RecaptchaField(
        public_key='6LdeFcwSAAAAAJF1ccPQ4j5Y0Q0iVULdXpRArpcp',
        private_key='6LdeFcwSAAAAAFv_xLOVLCPAyUQ_abubmG8oUdOw',
        secure=True)
Esempio n. 23
0
class ChangePasswordForm(LoginForm):
    username = TextField('Username', [validators.Required()])
    password = PasswordField('Old Password', [validators.Required()])
    new_password = PasswordField('New Password', [validators.Length(6)])
    confirm_password = PasswordField('Confirm Password',
                                     [validators.EqualTo('new_password')])
Esempio n. 24
0
class NewPass(Form):
    password = fields.PasswordField('New Password', [
        validators.Required(), validators.Length(min=8, max=20),
        validators.EqualTo('confirm', message='Passwords must match')
    ])
    confirm = fields.PasswordField(validators=[Required()])