diff options
-rw-r--r-- | integrations/signout_test.go | 2 | ||||
-rw-r--r-- | routers/routes/routes.go | 2 | ||||
-rw-r--r-- | templates/base/head_navbar.tmpl | 2 | ||||
-rw-r--r-- | web_src/js/index.js | 3 |
4 files changed, 6 insertions, 3 deletions
diff --git a/integrations/signout_test.go b/integrations/signout_test.go index 65957b244e..c31c913070 100644 --- a/integrations/signout_test.go +++ b/integrations/signout_test.go @@ -14,7 +14,7 @@ func TestSignOut(t *testing.T) { session := loginUser(t, "user2") - req := NewRequest(t, "GET", "/user/logout") + req := NewRequest(t, "POST", "/user/logout") session.MakeRequest(t, req, http.StatusFound) // try to view a private repo, should fail diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 424c3f65f2..3202c62d61 100644 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -399,7 +399,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Post("/recover_account", user.ResetPasswdPost) m.Get("/forgot_password", user.ForgotPasswd) m.Post("/forgot_password", user.ForgotPasswdPost) - m.Get("/logout", user.SignOut) + m.Post("/logout", user.SignOut) }) // ***** END: User ***** diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl index a09b4b832e..9e76853d46 100644 --- a/templates/base/head_navbar.tmpl +++ b/templates/base/head_navbar.tmpl @@ -109,7 +109,7 @@ {{end}} <div class="divider"></div> - <a class="item" href="{{AppSubUrl}}/user/logout"> + <a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/"> <i class="octicon octicon-sign-out"></i> {{.i18n.Tr "sign_out"}}<!-- Sign Out --> </a> diff --git a/web_src/js/index.js b/web_src/js/index.js index 062a3f7efe..eeb6bbd8c0 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -2740,11 +2740,14 @@ function showAddAllPopup() { function linkAction() { const $this = $(this); + const redirect = $this.data('redirect'); $.post($this.data('url'), { _csrf: csrf }).done((data) => { if (data.redirect) { window.location.href = data.redirect; + } else if (redirect) { + window.location.href = redirect; } else { window.location.reload(); } |