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,
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'])
@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'])
@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'])
# 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'])
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'])
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'])
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'])
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"])