|
|
|
@ -39,6 +39,10 @@ func (hs *HTTPServer) LoginView(c *m.ReqContext) { |
|
|
|
|
viewData.Settings["loginError"] = loginError |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if tryOAuthAutoLogin(c) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if !tryLoginUsingRememberCookie(c) { |
|
|
|
|
c.HTML(200, ViewIndex, viewData) |
|
|
|
|
return |
|
|
|
@ -53,6 +57,24 @@ func (hs *HTTPServer) LoginView(c *m.ReqContext) { |
|
|
|
|
c.Redirect(setting.AppSubUrl + "/") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func tryOAuthAutoLogin(c *m.ReqContext) bool { |
|
|
|
|
if !setting.OAuthAutoLogin { |
|
|
|
|
return false |
|
|
|
|
} |
|
|
|
|
oauthInfos := setting.OAuthService.OAuthInfos |
|
|
|
|
if len(oauthInfos) != 1 { |
|
|
|
|
log.Warn("Skipping OAuth auto login because multiple OAuth providers are configured.") |
|
|
|
|
return false |
|
|
|
|
} |
|
|
|
|
for key := range setting.OAuthService.OAuthInfos { |
|
|
|
|
redirectUrl := setting.AppSubUrl + "/login/" + key |
|
|
|
|
log.Info("OAuth auto login enabled. Redirecting to " + redirectUrl) |
|
|
|
|
c.Redirect(redirectUrl, 307) |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
return false |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func tryLoginUsingRememberCookie(c *m.ReqContext) bool { |
|
|
|
|
// Check auto-login.
|
|
|
|
|
uname := c.GetCookie(setting.CookieUserName) |
|
|
|
|