From 1f04c00e2fb8bb3c5c300712e7c1d581db4404d7 Mon Sep 17 00:00:00 2001 From: Morlinest Date: Thu, 2 Nov 2017 23:01:22 +0100 Subject: [PATCH] Fix redirect url of legacy commits route (#2825) --- integrations/links_test.go | 4 +++- modules/context/repo.go | 12 +----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/integrations/links_test.go b/integrations/links_test.go index 7eaf1c51e..e1213a2ed 100644 --- a/integrations/links_test.go +++ b/integrations/links_test.go @@ -7,8 +7,10 @@ package integrations import ( "fmt" "net/http" + "path" "testing" + "code.gitea.io/gitea/modules/setting" api "code.gitea.io/sdk/gitea" "github.com/stretchr/testify/assert" @@ -50,7 +52,7 @@ func TestRedirectsNoLogin(t *testing.T) { for link, redirectLink := range redirects { req := NewRequest(t, "GET", link) resp := MakeRequest(t, req, http.StatusFound) - assert.EqualValues(t, redirectLink, RedirectURL(t, resp)) + assert.EqualValues(t, path.Join(setting.AppSubURL, redirectLink), RedirectURL(t, resp)) } } diff --git a/modules/context/repo.go b/modules/context/repo.go index b2b58c4f2..8e0c584c8 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -521,16 +521,6 @@ func getRefName(ctx *Context, pathType RepoRefType) string { return "" } -// URL to redirect to for deprecated URL scheme -func repoRefRedirect(ctx *Context) string { - urlPath := ctx.Req.URL.String() - idx := strings.LastIndex(urlPath, ctx.Params("*")) - if idx < 0 { - idx = len(urlPath) - } - return path.Join(urlPath[:idx], ctx.Repo.BranchNameSubURL()) -} - // RepoRefByType handles repository reference name for a specific type // of repository reference func RepoRefByType(refType RepoRefType) macaron.Handler { @@ -617,7 +607,7 @@ func RepoRefByType(refType RepoRefType) macaron.Handler { if refType == RepoRefLegacy { // redirect from old URL scheme to new URL scheme - ctx.Redirect(repoRefRedirect(ctx)) + ctx.Redirect(path.Join(setting.AppSubURL, strings.TrimSuffix(ctx.Req.URL.String(), ctx.Params("*")), ctx.Repo.BranchNameSubURL())) return } }