diff --git a/controllers/auth.go b/controllers/auth.go index 14ec90a2..11c77cf7 100644 --- a/controllers/auth.go +++ b/controllers/auth.go @@ -100,6 +100,14 @@ func (c *ApiController) GetApplicationLogin() { c.ServeJSON() } +func setHttpClient(idProvider idp.IdProvider, providerType string) { + if providerType == "GitHub" || providerType == "Google" || providerType == "Facebook" || providerType == "LinkedIn" { + idProvider.SetHttpClient(proxyHttpClient) + } else { + idProvider.SetHttpClient(defaultHttpClient) + } +} + // @Title Login // @Description login // @Param oAuthParams query string true "oAuth parameters" @@ -213,7 +221,7 @@ func (c *ApiController) Login() { return } - idProvider.SetHttpClient(httpClient) + setHttpClient(idProvider, provider.Type) if form.State != beego.AppConfig.String("authState") && form.State != application.Name { resp = &Response{Status: "error", Msg: fmt.Sprintf("state expected: \"%s\", but got: \"%s\"", beego.AppConfig.String("authState"), form.State)} diff --git a/controllers/util.go b/controllers/util.go index 48cec1f2..fba4d047 100644 --- a/controllers/util.go +++ b/controllers/util.go @@ -21,12 +21,17 @@ import ( "golang.org/x/net/proxy" ) -var httpClient *http.Client +var defaultHttpClient *http.Client +var proxyHttpClient *http.Client func InitHttpClient() { + // not use proxy + defaultHttpClient = http.DefaultClient + + // use proxy httpProxy := beego.AppConfig.String("httpProxy") if httpProxy == "" { - httpClient = &http.Client{} + proxyHttpClient = &http.Client{} return } @@ -37,11 +42,11 @@ func InitHttpClient() { } tr := &http.Transport{Dial: dialer.Dial} - httpClient = &http.Client{ + proxyHttpClient = &http.Client{ Transport: tr, } - //resp, err2 := httpClient.Get("https://google.com") + //resp, err2 := proxyHttpClient.Get("https://google.com") //if err2 != nil { // panic(err2) //} diff --git a/object/user.go b/object/user.go index 2ce091e9..ce11f574 100644 --- a/object/user.go +++ b/object/user.go @@ -56,7 +56,7 @@ type User struct { Weibo string `xorm:"weibo varchar(100)" json:"weibo"` Gitee string `xorm:"gitee varchar(100)" json:"gitee"` LinkedIn string `xorm:"linkedin varchar(100)" json:"linkedin"` - WeCom string `xorm:"wecom varchar(100)" json:"we_com"` + Wecom string `xorm:"wecom varchar(100)" json:"wecom"` Ldap string `xorm:"ldap varchar(100)" json:"ldap"` Properties map[string]string `json:"properties"` diff --git a/web/src/UserEditPage.js b/web/src/UserEditPage.js index dcf78ea9..f9900b46 100644 --- a/web/src/UserEditPage.js +++ b/web/src/UserEditPage.js @@ -27,7 +27,8 @@ import AffiliationSelect from "./common/AffiliationSelect"; import OAuthWidget from "./common/OAuthWidget"; import SelectRegionBox from "./SelectRegionBox"; -import "codemirror/lib/codemirror.css" +import {Controlled as CodeMirror} from 'react-codemirror2'; +import "codemirror/lib/codemirror.css"; require('codemirror/theme/material-darker.css'); require("codemirror/mode/javascript/javascript");