From 1a3c015612bb65dd468b3a783411b2ff149b21a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Thu, 27 Nov 2025 15:34:17 +0300 Subject: [PATCH] use before_request in mod app --- app/routes/mod.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/routes/mod.py b/app/routes/mod.py index af1117a..cecf8fe 100644 --- a/app/routes/mod.py +++ b/app/routes/mod.py @@ -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/") -@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')