added hosted domain suppport to google oauth login (#6372)

This commit is contained in:
Eric Uldall 2016-10-28 03:00:47 -07:00 committed by Torkel Ödegaard
parent 7acdbde8f0
commit 658fc1a67a
5 changed files with 10 additions and 1 deletions

View File

@ -229,6 +229,7 @@ auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
api_url = https://www.googleapis.com/oauth2/v1/userinfo
allowed_domains =
hosted_domain =
#################################### Grafana.net Auth ####################
[auth.grafananet]

View File

@ -53,7 +53,11 @@ func OAuthLogin(ctx *middleware.Context) {
if code == "" {
state := GenStateString()
ctx.Session.Set(middleware.SESS_KEY_OAUTH_STATE, state)
ctx.Redirect(connect.AuthCodeURL(state, oauth2.AccessTypeOnline))
if setting.OAuthService.OAuthInfos[name].HostedDomain == "" {
ctx.Redirect(connect.AuthCodeURL(state, oauth2.AccessTypeOnline))
}else{
ctx.Redirect(connect.AuthCodeURL(state, oauth2.SetParam("hd", setting.OAuthService.OAuthInfos[name].HostedDomain), oauth2.AccessTypeOnline));
}
return
}

View File

@ -6,6 +6,7 @@ type OAuthInfo struct {
AuthUrl, TokenUrl string
Enabled bool
AllowedDomains []string
HostedDomain string
ApiUrl string
AllowSignup bool
Name string

View File

@ -12,6 +12,7 @@ import (
type SocialGoogle struct {
*oauth2.Config
allowedDomains []string
hostedDomain string
apiUrl string
allowSignup bool
}

View File

@ -51,6 +51,7 @@ func NewOAuthService() {
ApiUrl: sec.Key("api_url").String(),
Enabled: sec.Key("enabled").MustBool(),
AllowedDomains: sec.Key("allowed_domains").Strings(" "),
HostedDomain: sec.Key("hosted_domain").String(),
AllowSignup: sec.Key("allow_sign_up").MustBool(),
Name: sec.Key("name").MustString(name),
TlsClientCert: sec.Key("tls_client_cert").String(),
@ -92,6 +93,7 @@ func NewOAuthService() {
SocialMap["google"] = &SocialGoogle{
Config: &config,
allowedDomains: info.AllowedDomains,
hostedDomain: info.HostedDomain,
apiUrl: info.ApiUrl,
allowSignup: info.AllowSignup,
}