commit b03db25a2df215329a36f21a7b30bd4f71cc0247 parent 8350ef46cb049bd4b8ae834c1144e8e84266a114 Author: n0tr1v <n0tr1v@protonmail.com> Date: Fri, 15 Dec 2023 01:55:35 -0500 keep "redirect" query param across pages Diffstat:
6 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/pkg/web/handlers/data.go b/pkg/web/handlers/data.go @@ -29,6 +29,7 @@ type loginData struct { Username string Password string SessionDurationSec int64 + Redirect string Error string HomeUsersList bool CaptchaRequired bool @@ -87,6 +88,7 @@ type signupData struct { ErrPow string Errors database.UserErrors PowEnabled bool + Redirect string } type byteRoadChallengeData struct { @@ -134,6 +136,7 @@ type forgotPasswordData struct { ErrorNewPassword string RePassword string ErrorRePassword string + Redirect string } type forgotPasswordResetData struct { diff --git a/pkg/web/handlers/login.go b/pkg/web/handlers/login.go @@ -405,6 +405,7 @@ func loginFormHandler(c echo.Context) error { } if c.Request().Method == http.MethodGet { + data.Redirect = c.QueryParam("redirect") data.SessionDurationSec = 604800 return c.Render(http.StatusOK, "standalone.login", data) } @@ -497,6 +498,7 @@ func ForgotPasswordHandler(c echo.Context) error { func forgotPasswordHandler(c echo.Context) error { db := c.Get("database").(*database.DkfDB) var data forgotPasswordData + data.Redirect = c.QueryParam("redirect") const ( usernameCaptchaStep = iota + 1 gpgCodeSignatureStep diff --git a/pkg/web/handlers/signup.go b/pkg/web/handlers/signup.go @@ -79,6 +79,7 @@ func signupHandler(c echo.Context) error { var data signupData config.SignupPageLoad.Inc() + data.Redirect = c.QueryParam("redirect") data.PowEnabled = config.PowEnabled.Load() data.CaptchaSec = 120 data.Frames = generateCssFrames(data.CaptchaSec, nil, true) diff --git a/pkg/web/public/views/pages/standalone/forgot-password.gohtml b/pkg/web/public/views/pages/standalone/forgot-password.gohtml @@ -54,7 +54,7 @@ <input type="submit" class="transparent-input btn btn-lg btn-primary btn-block" value="{{ t "Recover password" . }}" /> </div> <div class="form-group"> - <a href="/" class="bg-label link">{{ t "Login" . }}</a> + <a href="/{{ if .Data.Redirect }}?redirect={{ .Data.Redirect }}{{ end }}" class="bg-label link">{{ t "Login" . }}</a> </div> </div> </div> diff --git a/pkg/web/public/views/pages/standalone/login.gohtml b/pkg/web/public/views/pages/standalone/login.gohtml @@ -52,8 +52,8 @@ <input type="submit" class="transparent-input btn btn-lg btn-primary btn-block" value="{{ t "Sign in" . }}" /> </div> <div class="form-group"> - <a href="/signup" class="bg-label link">{{ t "Register" . }}</a> - <a href="/forgot-password" class="bg-label link ml-2">{{ t "I forgot my password" . }}</a> + <a href="/signup{{ if .Data.Redirect }}?redirect={{ .Data.Redirect }}{{ end }}" class="bg-label link">{{ t "Register" . }}</a> + <a href="/forgot-password{{ if .Data.Redirect }}?redirect={{ .Data.Redirect }}{{ end }}" class="bg-label link ml-2">{{ t "I forgot my password" . }}</a> </div> {{ if .Data.HomeUsersList }} <div class="form-group"> diff --git a/pkg/web/public/views/pages/standalone/signup.gohtml b/pkg/web/public/views/pages/standalone/signup.gohtml @@ -66,7 +66,7 @@ <input type="submit" class="transparent-input btn btn-lg btn-primary btn-block" value="{{ t "Sign up" . }}" /> </div> <div class="form-group"> - <a href="/" class="bg-label link">{{ t "Login" . }}</a> + <a href="/{{ if .Data.Redirect }}?redirect={{ .Data.Redirect }}{{ end }}" class="bg-label link">{{ t "Login" . }}</a> </div> </div> </div>