grafana_com: changed name of oauth grafana_net integration (old settings names still work), and updated login button look, closes #8415

This commit is contained in:
Torkel Ödegaard
2017-05-22 14:56:50 +02:00
parent 7c50563f0f
commit c34db77f04
9 changed files with 65 additions and 49 deletions

View File

@@ -13,7 +13,7 @@ import (
"github.com/grafana/grafana/pkg/util"
)
var gNetProxyTransport = &http.Transport{
var grafanaComProxyTransport = &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: false},
Proxy: http.ProxyFromEnvironment,
Dial: (&net.Dialer{
@@ -24,7 +24,7 @@ var gNetProxyTransport = &http.Transport{
}
func ReverseProxyGnetReq(proxyPath string) *httputil.ReverseProxy {
url, _ := url.Parse(setting.GrafanaNetUrl)
url, _ := url.Parse(setting.GrafanaComUrl)
director := func(req *http.Request) {
req.URL.Scheme = url.Scheme
@@ -45,7 +45,7 @@ func ReverseProxyGnetReq(proxyPath string) *httputil.ReverseProxy {
func ProxyGnetRequest(c *middleware.Context) {
proxyPath := c.Params("*")
proxy := ReverseProxyGnetReq(proxyPath)
proxy.Transport = gNetProxyTransport
proxy.Transport = grafanaComProxyTransport
proxy.ServeHTTP(c.Resp, c.Req.Request)
c.Resp.Header().Del("Set-Cookie")
}

View File

@@ -7,5 +7,5 @@ const (
GOOGLE
TWITTER
GENERIC
GRAFANANET
GRAFANA_COM
)

View File

@@ -160,7 +160,7 @@ var (
logger log.Logger
// Grafana.NET URL
GrafanaNetUrl string
GrafanaComUrl string
// S3 temp image store
S3TempImageStoreBucketUrl string
@@ -582,7 +582,11 @@ func NewConfigContext(args *CommandLineArgs) error {
log.Warn("require_email_validation is enabled but smpt is disabled")
}
GrafanaNetUrl = Cfg.Section("grafana_net").Key("url").MustString("https://grafana.com")
// check old key name
GrafanaComUrl = Cfg.Section("grafana_net").Key("url").MustString("")
if GrafanaComUrl == "" {
GrafanaComUrl = Cfg.Section("grafana_com").Key("url").MustString("https://grafana.com")
}
imageUploadingSection := Cfg.Section("external_image_storage")
ImageUploadProvider = imageUploadingSection.Key("provider").MustString("internal")

View File

@@ -9,7 +9,7 @@ import (
"golang.org/x/oauth2"
)
type SocialGrafanaNet struct {
type SocialGrafanaCom struct {
*oauth2.Config
url string
allowedOrganizations []string
@@ -20,19 +20,19 @@ type OrgRecord struct {
Login string `json:"login"`
}
func (s *SocialGrafanaNet) Type() int {
return int(models.GRAFANANET)
func (s *SocialGrafanaCom) Type() int {
return int(models.GRAFANA_COM)
}
func (s *SocialGrafanaNet) IsEmailAllowed(email string) bool {
func (s *SocialGrafanaCom) IsEmailAllowed(email string) bool {
return true
}
func (s *SocialGrafanaNet) IsSignupAllowed() bool {
func (s *SocialGrafanaCom) IsSignupAllowed() bool {
return s.allowSignup
}
func (s *SocialGrafanaNet) IsOrganizationMember(organizations []OrgRecord) bool {
func (s *SocialGrafanaCom) IsOrganizationMember(organizations []OrgRecord) bool {
if len(s.allowedOrganizations) == 0 {
return true
}
@@ -48,7 +48,7 @@ func (s *SocialGrafanaNet) IsOrganizationMember(organizations []OrgRecord) bool
return false
}
func (s *SocialGrafanaNet) UserInfo(client *http.Client) (*BasicUserInfo, error) {
func (s *SocialGrafanaCom) UserInfo(client *http.Client) (*BasicUserInfo, error) {
var data struct {
Name string `json:"name"`
Login string `json:"username"`

View File

@@ -47,7 +47,7 @@ func NewOAuthService() {
setting.OAuthService = &setting.OAuther{}
setting.OAuthService.OAuthInfos = make(map[string]*setting.OAuthInfo)
allOauthes := []string{"github", "google", "generic_oauth", "grafananet"}
allOauthes := []string{"github", "google", "generic_oauth", "grafananet", "grafana_com"}
for _, name := range allOauthes {
sec := setting.Cfg.Section("auth." + name)
@@ -72,6 +72,10 @@ func NewOAuthService() {
continue
}
if name == "grafananet" {
name = "grafana_com"
}
setting.OAuthService.OAuthInfos[name] = info
config := oauth2.Config{
@@ -120,21 +124,21 @@ func NewOAuthService() {
}
}
if name == "grafananet" {
if name == "grafana_com" {
config = oauth2.Config{
ClientID: info.ClientId,
ClientSecret: info.ClientSecret,
Endpoint: oauth2.Endpoint{
AuthURL: setting.GrafanaNetUrl + "/oauth2/authorize",
TokenURL: setting.GrafanaNetUrl + "/api/oauth2/token",
AuthURL: setting.GrafanaComUrl + "/oauth2/authorize",
TokenURL: setting.GrafanaComUrl + "/api/oauth2/token",
},
RedirectURL: strings.TrimSuffix(setting.AppUrl, "/") + SocialBaseUrl + name,
Scopes: info.Scopes,
}
SocialMap["grafananet"] = &SocialGrafanaNet{
SocialMap["grafana_com"] = &SocialGrafanaCom{
Config: &config,
url: setting.GrafanaNetUrl,
url: setting.GrafanaComUrl,
allowSignup: info.AllowSignup,
allowedOrganizations: util.SplitString(sec.Key("allowed_organizations").String()),
}