def main():
    print database.get_sponsors()
    # users = User.query.filter_by(status='pending_sponsor').all()
    # sponsors = map(lambda s: User.query.get(s), {user.sponsor for user in users})
    # users_by_sponsor = {sponsor : [user for user in users if user.sponsor == sponsor.username] for sponsor in sponsors}
    # print users_by_sponsor
    # u = User('test' + str(randrange(12341234)), 'test')
    # u.status = 'pw_reset'
    # db.session.add(u)
    # db.session.commit()
    # 
    # u.add_flag('account_reset_password')
    # print u.status
    # 
    # db.session.commit()
Example #2
0
 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')
Example #3
0
def labstaff_add_user():
    # Labstaff have the ability to choose 'staff' as a sponsor
    RegisterForm.sponsor = SelectField('Sponsor',
                                       choices=[
                                           (s.username, ''.join(
                                               (s.last_name, ', ',
                                                s.first_name)))
                                           for s in database.get_sponsors(True)
                                       ],
                                       validators=[validators.Required()])
    form = RegisterForm()
    if form.is_submitted():
        if form.validate_on_submit():
            user = database.User(form.username.data, form.password.data)
            user.first_name = form.first_name.data
            user.last_name = form.last_name.data
            user.dob = form.dob.data
            user.email = form.email.data
            user.sponsor = form.sponsor.data
            user.grad_date = form.grad_date.data
            user.status = 'pending_create'
            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 account created.')
            return redirect(url_for("index"))
        else:
            return render_template(
                "labstaff_add_user.html",
                form=form,
                error="There was an error with your submission")
    return render_template("labstaff_add_user.html", form=form)
Example #4
0
class UpgradeForm(Form):
    sponsor = SelectField('Sponsor',
                          choices=[(s.username, ''.join(
                              (s.last_name, ', ', s.first_name)))
                                   for s in database.get_sponsors()],
                          validators=[validators.Required()])
    reason = TextAreaField('Reason for Upgrade',
                           validators=[validators.Required()])
Example #5
0
def json_register_validate(field='test'):
    # Let's assume that everyone is able to choose staff.
    # The option won't appear in the dropdown, and will also not be allowed
    # once the form is submitted. Nobody who is not messing with things
    # will be affected.
    RegisterForm.sponsor = SelectField('Sponsor',
                                       choices=[
                                           (s.username, ''.join(
                                               (s.last_name, ', ',
                                                s.first_name)))
                                           for s in database.get_sponsors(True)
                                       ],
                                       validators=[validators.Required()])
    form = RegisterForm()
    try:
        field = getattr(form, field)
    except AttributeError:
        return jsonify(okay=False, error='What?')
    field.data = request.args.get('data', '', type=str)
    if field.validate(form):
        return jsonify(okay=True)
    else:
        return jsonify(okay=False, error=field.errors[0])
Example #6
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)
Example #7
0
def json_register_validate(field = 'test'):
    # Let's assume that everyone is able to choose staff.
    # The option won't appear in the dropdown, and will also not be allowed
    # once the form is submitted. Nobody who is not messing with things
    # will be affected.
    RegisterForm.sponsor = SelectField('Sponsor',
                         choices=[(s.username, ''.join((s.last_name, ', ', s.first_name))) for s in database.get_sponsors(True)],
                         validators=[validators.Required()])
    form = RegisterForm()
    try:
        field = getattr(form, field)
    except AttributeError:
        return jsonify(okay=False, error='What?')
    field.data = request.args.get('data', '', type=str)
    if field.validate(form):
        return jsonify(okay=True)
    else:
        return jsonify(okay=False, error=field.errors[0])
Example #8
0
def labstaff_add_user():
    # Labstaff have the ability to choose 'staff' as a sponsor
    RegisterForm.sponsor = SelectField('Sponsor',
                         choices=[(s.username, ''.join((s.last_name, ', ', s.first_name))) for s in database.get_sponsors(True)],
                         validators=[validators.Required()])
    form = RegisterForm()        
    if form.is_submitted():
        if form.validate_on_submit():
            user = database.User(form.username.data, form.password.data)
            user.first_name = form.first_name.data
            user.last_name = form.last_name.data
            user.dob = form.dob.data
            user.email = form.email.data
            user.sponsor = form.sponsor.data
            user.grad_date = form.grad_date.data
            user.status = 'pending_create'
            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 account created.')
            return redirect(url_for("index"))
        else:
            return render_template("labstaff_add_user.html", form=form, error="There was an error with your submission")
    return render_template("labstaff_add_user.html", form=form)