summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--integrations/signout_test.go2
-rw-r--r--routers/routes/routes.go2
-rw-r--r--templates/base/head_navbar.tmpl2
-rw-r--r--web_src/js/index.js3
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();
}