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