Browse Source

Merge pull request #12077 from roidelapluie/logout

Fix #9847 Add a generic signout_redirect_url to enable oauth logout
Carl Bergquist 7 years ago
parent
commit
6c259eb04d
4 changed files with 13 additions and 1 deletions
  1. 3 0
      conf/defaults.ini
  2. 3 0
      conf/sample.ini
  3. 5 1
      pkg/api/login.go
  4. 2 0
      pkg/setting/setting.go

+ 3 - 0
conf/defaults.ini

@@ -237,6 +237,9 @@ disable_login_form = false
 # Set to true to disable the signout link in the side menu. useful if you use auth.proxy
 disable_signout_menu = false
 
+# URL to redirect the user to after sign out
+signout_redirect_url =
+
 #################################### Anonymous Auth ######################
 [auth.anonymous]
 # enable anonymous access

+ 3 - 0
conf/sample.ini

@@ -217,6 +217,9 @@ log_queries =
 # Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false
 ;disable_signout_menu = false
 
+# URL to redirect the user to after sign out
+;signout_redirect_url =
+
 #################################### Anonymous Auth ##########################
 [auth.anonymous]
 # enable anonymous access

+ 5 - 1
pkg/api/login.go

@@ -155,5 +155,9 @@ func Logout(c *m.ReqContext) {
 	c.SetCookie(setting.CookieUserName, "", -1, setting.AppSubUrl+"/")
 	c.SetCookie(setting.CookieRememberName, "", -1, setting.AppSubUrl+"/")
 	c.Session.Destory(c.Context)
-	c.Redirect(setting.AppSubUrl + "/login")
+	if setting.SignoutRedirectUrl != "" {
+		c.Redirect(setting.SignoutRedirectUrl)
+	} else {
+		c.Redirect(setting.AppSubUrl + "/login")
+	}
 }

+ 2 - 0
pkg/setting/setting.go

@@ -104,6 +104,7 @@ var (
 	DefaultTheme            string
 	DisableLoginForm        bool
 	DisableSignoutMenu      bool
+	SignoutRedirectUrl      string
 	ExternalUserMngLinkUrl  string
 	ExternalUserMngLinkName string
 	ExternalUserMngInfo     string
@@ -600,6 +601,7 @@ func (cfg *Cfg) Load(args *CommandLineArgs) error {
 	auth := iniFile.Section("auth")
 	DisableLoginForm = auth.Key("disable_login_form").MustBool(false)
 	DisableSignoutMenu = auth.Key("disable_signout_menu").MustBool(false)
+	SignoutRedirectUrl = auth.Key("signout_redirect_url").String()
 
 	// anonymous access
 	AnonymousEnabled = iniFile.Section("auth.anonymous").Key("enabled").MustBool(false)