use before_request in mod app

This commit is contained in:
2025-11-27 15:34:17 +03:00
parent fc9ae63471
commit 1a3c015612

View File

@@ -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')