From ee7f1c0bdaf14d988c66f24163d08cdacfce32b8 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Sun, 20 Feb 2022 12:00:03 +0000 Subject: [PATCH] This isn't perfect, but does solve the 'getting lost on login' issue. --- resources/templates/base.html | 3 +-- src/smeagol/routes/wiki.clj | 9 ++++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/resources/templates/base.html b/resources/templates/base.html index 01152af..6d11c9a 100644 --- a/resources/templates/base.html +++ b/resources/templates/base.html @@ -80,8 +80,7 @@
one wiki to rule them allOne Wiki to rule them all || - Smeagol wiki engine {{version}} || - The Web Engineering Factory & Toolworks Developed by WEFT + Smeagol wiki engine {{version}}
Built with LuminusWeb || diff --git a/src/smeagol/routes/wiki.clj b/src/smeagol/routes/wiki.clj index 27ec424..fa136f6 100644 --- a/src/smeagol/routes/wiki.clj +++ b/src/smeagol/routes/wiki.clj @@ -380,13 +380,14 @@ (or (show-sanity-check-error) (let [params (keywordize-keys (:params request)) + headers (keywordize-keys (:headers request)) form-params (keywordize-keys (:form-params request)) username (:username form-params) password (:password form-params) action (:action form-params) user (session/get :user) - redirect-to (:redirect-to params)] - (if redirect-to (log/info (str "After auth, redirect to: " redirect-to))) + redirect-to (or (:redirect-to params) (:referer headers))] + (when redirect-to (log/info (str "After auth, redirect to: " redirect-to))) (cond (= action (util/get-message :logout-label request)) (do @@ -418,7 +419,9 @@ ;; else merge a redirect target into the params (let [redirect-to (if (:uri request) - (cs/join "?" [(:uri request) (:query-string request)]))] + (cs/join "?" [(:uri request) (:query-string request)]) + ((:headers request) "referer"))] + (log/info "Setting redirect to '" redirect-to "'") (assoc-in request [:params :redirect-to] redirect-to)))))) (defn passwd-page