use before_request in mod app
This commit is contained in:
@@ -1,25 +1,30 @@
|
||||
from flask import (
|
||||
Blueprint, render_template, request, redirect, url_for
|
||||
)
|
||||
from .users import login_required, mod_only, get_active_user, admin_only
|
||||
from .users import get_active_user, is_logged_in
|
||||
from ..models import Users, PasswordResetLinks
|
||||
from ..db import db, DB
|
||||
from ..db import db
|
||||
import secrets
|
||||
import time
|
||||
|
||||
bp = Blueprint("mod", __name__, url_prefix = "/mod/")
|
||||
|
||||
@bp.before_request
|
||||
def _before_request():
|
||||
if not is_logged_in():
|
||||
return redirect(url_for("users.log_in"))
|
||||
|
||||
if not get_active_user().is_mod():
|
||||
return redirect(url_for("topics.all_topics"))
|
||||
|
||||
|
||||
@bp.get("/sort-topics")
|
||||
@login_required
|
||||
@mod_only("topics.all_topics")
|
||||
def sort_topics():
|
||||
topics = db.query("SELECT * FROM topics ORDER BY sort_order ASC")
|
||||
return render_template("mod/sort-topics.html", topics = topics)
|
||||
|
||||
|
||||
@bp.post("/sort-topics")
|
||||
@login_required
|
||||
@mod_only("topics.all_topics")
|
||||
def sort_topics_post():
|
||||
with db.transaction():
|
||||
for topic_id, new_order in request.form.items():
|
||||
@@ -29,16 +34,12 @@ def sort_topics_post():
|
||||
|
||||
|
||||
@bp.get("/user-list")
|
||||
@login_required
|
||||
@mod_only("users.page", username = lambda: get_active_user().username)
|
||||
def user_list():
|
||||
users = Users.select()
|
||||
return render_template("mod/user-list.html", users = users)
|
||||
|
||||
|
||||
@bp.post("/reset-pass/<user_id>")
|
||||
@login_required
|
||||
@mod_only("topics.all_topics")
|
||||
def create_reset_pass(user_id):
|
||||
now = int(time.time())
|
||||
key = secrets.token_urlsafe(20)
|
||||
@@ -52,7 +53,5 @@ def create_reset_pass(user_id):
|
||||
|
||||
|
||||
@bp.get('/panel')
|
||||
@login_required
|
||||
@mod_only('topics.all_topics')
|
||||
def panel():
|
||||
return render_template('mod/panel.html')
|
||||
|
||||
Reference in New Issue
Block a user