33 lines
1.0 KiB
Python
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"))
|