From 2842f6cf42ab984a7f533a51a050425ebaa2313b Mon Sep 17 00:00:00 2001
From: mrsdizzie <info@mrsdizzie.com>
Date: Wed, 3 Jun 2020 23:41:02 -0400
Subject: [PATCH] Include query in sign in redirect (#11579)

* Include query in sign in redirect

Include query string in ctx.Data["SignInLink"] so people are redirected to the right page after singing in. Fixes case of:

Visit:

 https://try.gitea.io/mrsdizzie/testcase/issues?q=&type=all&sort=&state=open&labels=7071&milestone=0&assignee=0

Sign in, then redirected to:

 https://try.gitea.io/mrsdizzie/testcase/issues

Create a new "SignInLink" instead of updating the existing "Link" because too many places in the code assume "Link" won't have a query

* Apply suggestions from code review

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
---
 modules/context/context.go      | 1 +
 templates/base/head_navbar.tmpl | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/modules/context/context.go b/modules/context/context.go
index f8663b9c03..b26528f6b2 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -242,6 +242,7 @@ func Contexter() macaron.Handler {
 		}
 		ctx.Data["Language"] = ctx.Locale.Language()
 		c.Data["Link"] = ctx.Link
+		ctx.Data["CurrentURL"] = setting.AppSubURL + c.Req.URL.RequestURI()
 		ctx.Data["PageStartTime"] = time.Now()
 		// Quick responses appropriate go-get meta with status 200
 		// regardless of if user have access to the repository,
diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl
index 393671d3ad..b96e99702e 100644
--- a/templates/base/head_navbar.tmpl
+++ b/templates/base/head_navbar.tmpl
@@ -154,7 +154,7 @@
 					{{svg "octicon-person" 16}} {{.i18n.Tr "register"}}
 				</a>
 			{{end}}
-			<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{.Link}}">
+			<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{.CurrentURL}}">
 				{{svg "octicon-sign-in" 16}} {{.i18n.Tr "sign_in"}}
 			</a>
 		</div><!-- end anonymous right menu -->