2 from flask_user import *
3 from flask.ext import menu
5 from app.models import *
6 from flask_wtf import FlaskForm
8 from .utils import loginUser, rank_required
10 @menu.register_menu(app, ".admin", "Admin", order=30,
11 visible_when=lambda: current_user.rank.atLeast(UserRank.ADMIN))
13 @rank_required(UserRank.ADMIN)
15 return render_template("admin/list.html")
17 class SwitchUserForm(FlaskForm):
18 username = StringField("Username")
19 submit = SubmitField("Switch")
22 @app.route("/admin/switchuser/", methods=["GET", "POST"])
23 @rank_required(UserRank.ADMIN)
24 def switch_user_page():
25 form = SwitchUserForm(formdata=request.form)
26 if request.method == "POST" and form.validate():
27 user = User.query.filter_by(username=form["username"].data).first()
29 flash("Unable to find user", "error")
31 return redirect(url_for("user_profile_page", username=current_user.username))
33 flash("Unable to login as user", "error")
36 # Process GET or invalid POST
37 return render_template("admin/switch_user_page.html", form=form)