From 9d122264e5329eccbcc1cc1f30f0f16b430d31f6 Mon Sep 17 00:00:00 2001
From: Edward Betts <edward@4angle.com>
Date: Sun, 21 Jan 2024 16:22:37 +0000
Subject: [PATCH] Add support for 'next' URL parameter for redirect after auth

---
 main.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/main.py b/main.py
index 48adcbd..80a85af 100755
--- a/main.py
+++ b/main.py
@@ -84,10 +84,16 @@ def login_page() -> str | werkzeug.Response:
         # Login failed: Show an error message on the login page
         return flask.render_template("login.html", error="Invalid credentials")
 
+    redirect_to = (
+        flask.request.args.get("next")
+        or flask.session.get("next")
+        or flask.url_for("dashboard")
+    )
+
     expire_date = datetime.now() + timedelta(days=180)
     flask.flash("Welcome back! You have successfully logged in.")
 
-    response = flask.redirect(flask.session.get("next") or flask.url_for("dashboard"))
+    response = flask.redirect(redirect_to)
     response.set_cookie(
         "auth_token",
         generate_auth_token(user["username"]),