示例#1
0
    else:
        form = Form()
        if sponsored:
            template = 'sponsored_users.html'
        else:
            template = 'userlist.html'
    return render_template(template,
                           page=page,
                           sort=sort,
                           sort_dir='asc' if sort_dir == asc else 'desc',
                           form=form,
                           filter_form=filter_form)

app.add_url_rule('/users/pending',
                 'list_pending_users',
                 userlist,
                 defaults={'pending': True},
                 methods=['GET', 'POST'])
app.add_url_rule('/users/pending/page/<int:page>',
                 'list_pending_users',
                 userlist,
                 defaults={'pending': True},
                 methods=['GET', 'POST'])
app.add_url_rule('/users/sponsored',
                 'list_sponsored_users',
                 userlist,
                 defaults={'sponsored': True},
                 methods=['GET', 'POST'])
app.add_url_rule('/users/sponsored/page/<int:page>',
                 'list_sponsored_users',
                 userlist,
示例#2
0
                           validators=[validators.Required()])


@app.route('/upgrade_account/', methods=['GET', 'POST'])
@app.allow('logged_in')
def upgrade_account():
    user = g.user
    form = UpgradeForm()
    if form.is_submitted():
        if form.validate_on_submit():
            user.sponsor = form.sponsor.data
            if user.comments is None:
                user.comments = '\nUser provided upgrade reason:\n' + form.reason.data
            else:
                user.comments += '\nUser provided upgrade reason:\n' + form.reason.data
            user.status = 'pending_sponsor'
            db.session.add(user)
            db.session.commit()
            flash("Upgrade request sent!")
        else:
            return render_template(
                "upgrade_account.html",
                form=form,
                error="There was an error with your submission")
    form = UpgradeForm(ImmutableMultiDict())
    return render_template("upgrade_account.html", form=form)


app.add_url_rule('/upgrade_account/',
                 'upgrade_account',
                 methods=['GET', 'POST'])
示例#3
0
@app.route('/json/register/validate/')
@app.route('/json/register/validate/<string:field>')
@app.allow('all')
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])


app.add_url_rule('/edit/<int:uid>/', 'edit_user', methods=['GET', 'POST'])
示例#4
0
@app.route('/change_password/', methods=['GET', 'POST'])
@app.allow('logged_in')
def change_password():
    user = g.user
    form = PasswordForm()
    if form.is_submitted():
        if form.validate_on_submit():
            if user.verify_password(form.old_password.data):
                if form.password.data != '':
                    user.password = form.password.data
                db.session.add(user)
                db.session.commit()
                flash(
                    "Password changed successfully. Please allow a few minutes for the change to propogate to the login servers."
                )
            else:
                flash("Old Password is incorrect")
        else:
            return render_template(
                "change_password.html",
                form=form,
                error="There was an error with your submission")
    form = PasswordForm(ImmutableMultiDict())

    return render_template("change_password.html", form=form)


app.add_url_rule('/change_password/',
                 'change_password',
                 methods=['GET', 'POST'])
示例#5
0
    # 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)

@app.route('/json/register/validate/')
@app.route('/json/register/validate/<string:field>')
@app.allow('all')
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])
		
app.add_url_rule('/edit/<int:uid>/', 'edit_user', methods=['GET', 'POST'])
示例#6
0
                        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.')])

@app.route('/change_password/', methods=['GET', 'POST'])
@app.allow('logged_in')
def change_password():
    user = g.user
    form = PasswordForm()
    if form.is_submitted():
        if form.validate_on_submit():
            if user.verify_password(form.old_password.data):
                if form.password.data != '':
                    user.password = form.password.data
                db.session.add(user)
                db.session.commit()
                flash("Password changed successfully. Please allow a few minutes for the change to propogate to the login servers.")
            else:
                flash("Old Password is incorrect")
        else:
            return render_template("change_password.html", form=form, error="There was an error with your submission")
    form = PasswordForm(ImmutableMultiDict())
    
    return render_template("change_password.html", form=form)

app.add_url_rule('/change_password/', 'change_password', methods=['GET', 'POST'])
示例#7
0
from werkzeug.datastructures import ImmutableMultiDict

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()])

@app.route('/upgrade_account/', methods=['GET', 'POST'])
@app.allow('logged_in')
def upgrade_account():
    user = g.user
    form = UpgradeForm()
    if form.is_submitted():
        if form.validate_on_submit():
            user.sponsor = form.sponsor.data
            if user.comments is None:
                user.comments = '\nUser provided upgrade reason:\n' + form.reason.data
            else:
                user.comments += '\nUser provided upgrade reason:\n' + form.reason.data
            user.status = 'pending_sponsor'
            db.session.add(user)
            db.session.commit()
            flash("Upgrade request sent!")
        else:
            return render_template("upgrade_account.html", form=form, error="There was an error with your submission")
    form = UpgradeForm(ImmutableMultiDict())
    return render_template("upgrade_account.html", form=form)

app.add_url_rule('/upgrade_account/', 'upgrade_account', methods=['GET', 'POST'])
示例#8
0
            user.radio.data = 'postpone'
        if sponsored:
            template = 'sponsorship_requests.html'
        else:
            template = 'list_pending_users.html'
    elif rolloffs:
        class rolloffCheckbox(Form):
            pass
        for user in page.items:
            setattr(rolloffCheckbox, user.username, BooleanField())
        form = rolloffCheckbox(ImmutableMultiDict())
        for user in page.items:
            user.checkbox = getattr(form, user.username)
        template = 'list_upcoming_rolloffs.html'
    else:
        form = Form()
        if sponsored:
            template = 'sponsored_users.html'
        else:
            template = 'userlist.html'
    return render_template(template, page=page, sort=sort, sort_dir='asc' if sort_dir == asc else 'desc', form=form, filter_form=filter_form)


app.add_url_rule('/users/pending', 'list_pending_users', userlist, defaults={'pending' : True}, methods=['GET', 'POST'])
app.add_url_rule('/users/pending/page/<int:page>', 'list_pending_users', userlist, defaults={'pending' : True}, methods=['GET', 'POST'])
app.add_url_rule('/users/sponsored', 'list_sponsored_users', userlist, defaults={'sponsored' : True}, methods=['GET', 'POST'])
app.add_url_rule('/users/sponsored/page/<int:page>', 'list_sponsored_users', userlist, defaults={'sponsored' : True}, methods=['GET', 'POST'])
app.add_url_rule('/users/sponsored/pending', 'list_sponsored_pending_users', userlist, defaults={'sponsored' : True, 'pending' : True}, methods=['GET', 'POST'])
app.add_url_rule('/users/sponsored/pending/page/<int:page>', 'list_sponsored_pending_users', userlist, defaults={'sponsored' : True, 'pending' : True}, methods=['GET', 'POST'])
app.add_url_rule('/users/rolloffs', 'list_upcoming_rolloffs', userlist, defaults={'rolloffs' : True}, methods=['GET', 'POST'])
示例#9
0
            validators.EqualTo("password", message="Passwords do not match."),
        ],
    )


@app.route("/change_password/", methods=["GET", "POST"])
@app.allow("logged_in")
def change_password():
    user = g.user
    form = PasswordForm()
    if form.is_submitted():
        if form.validate_on_submit():
            if user.verify_password(form.old_password.data):
                if form.password.data != "":
                    user.password = form.password.data
                db.session.add(user)
                db.session.commit()
                flash(
                    "Password changed successfully. Please allow a few minutes for the change to propogate to the login servers."
                )
            else:
                flash("Old Password is incorrect")
        else:
            return render_template("change_password.html", form=form, error="There was an error with your submission")
    form = PasswordForm(ImmutableMultiDict())

    return render_template("change_password.html", form=form)


app.add_url_rule("/change_password/", "change_password", methods=["GET", "POST"])