Files
nexium-web/app/pages/maintenance/maintenance.py
2026-08-02 17:55:21 +00:00

33 lines
1.0 KiB
Python

from flask import Blueprint, render_template, request, redirect, url_for, session, flash
from app.extensions import limiter
from config import Config
config = Config()
maintenance = Blueprint("maintenance", __name__, template_folder="pages")
@maintenance.route("/maintenance", methods=["GET"])
@limiter.exempt
def maintenance_page():
if not config.MAINTENANCE_MODE:
return redirect("/")
if session.get("maintenance_authorized") == True:
return redirect("/")
return render_template("maintenance/maintenance.html")
@maintenance.route("/maintenance", methods=["POST"])
@limiter.limit("5/minute")
def handle_maintenance_post():
if not config.MAINTENANCE_MODE:
return redirect("/")
password = request.form.get("password")
if password == config.MAINTENANCE_PASSWORD:
session["maintenance_authorized"] = True
return redirect("/")
else:
flash("Incorrect maintenance password", "error")
return redirect(url_for("maintenance.maintenance_page"))