|
@@ -27,6 +27,7 @@ type Config struct {
|
|
Enabled bool `json:"enabled"`
|
|
Enabled bool `json:"enabled"`
|
|
IDP string `json:"idp"`
|
|
IDP string `json:"idp"`
|
|
RedirectURL string `json:"redirect_url"`
|
|
RedirectURL string `json:"redirect_url"`
|
|
|
|
+ ServerURL string `json:"server_url"`
|
|
ClientID string `json:"client_id"`
|
|
ClientID string `json:"client_id"`
|
|
ClientSecret string `json:"client_secret"`
|
|
ClientSecret string `json:"client_secret"`
|
|
}
|
|
}
|
|
@@ -178,12 +179,14 @@ func (oh *OauthHandler) ReadConfig(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
idp := oh.readSingleConfig("idp")
|
|
idp := oh.readSingleConfig("idp")
|
|
redirecturl := oh.readSingleConfig("redirecturl")
|
|
redirecturl := oh.readSingleConfig("redirecturl")
|
|
|
|
+ serverurl := oh.readSingleConfig("serverurl")
|
|
clientid := oh.readSingleConfig("clientid")
|
|
clientid := oh.readSingleConfig("clientid")
|
|
clientsecret := oh.readSingleConfig("clientsecret")
|
|
clientsecret := oh.readSingleConfig("clientsecret")
|
|
|
|
|
|
config, err := json.Marshal(Config{
|
|
config, err := json.Marshal(Config{
|
|
Enabled: enabled,
|
|
Enabled: enabled,
|
|
IDP: idp,
|
|
IDP: idp,
|
|
|
|
+ ServerURL: serverurl,
|
|
RedirectURL: redirecturl,
|
|
RedirectURL: redirecturl,
|
|
ClientID: clientid,
|
|
ClientID: clientid,
|
|
ClientSecret: clientsecret,
|
|
ClientSecret: clientsecret,
|
|
@@ -201,7 +204,7 @@ func (oh *OauthHandler) ReadConfig(w http.ResponseWriter, r *http.Request) {
|
|
func (oh *OauthHandler) WriteConfig(w http.ResponseWriter, r *http.Request) {
|
|
func (oh *OauthHandler) WriteConfig(w http.ResponseWriter, r *http.Request) {
|
|
enabled, err := mv(r, "enabled", true)
|
|
enabled, err := mv(r, "enabled", true)
|
|
if err != nil {
|
|
if err != nil {
|
|
- sendErrorResponse(w, "enabled field can't be empty'")
|
|
|
|
|
|
+ sendErrorResponse(w, "enabled field can't be empty")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
@@ -215,34 +218,50 @@ func (oh *OauthHandler) WriteConfig(w http.ResponseWriter, r *http.Request) {
|
|
idp, err := mv(r, "idp", true)
|
|
idp, err := mv(r, "idp", true)
|
|
if err != nil {
|
|
if err != nil {
|
|
if showError {
|
|
if showError {
|
|
- sendErrorResponse(w, "idp field can't be empty'")
|
|
|
|
|
|
+ sendErrorResponse(w, "idp field can't be empty")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
redirecturl, err := mv(r, "redirecturl", true)
|
|
redirecturl, err := mv(r, "redirecturl", true)
|
|
if err != nil {
|
|
if err != nil {
|
|
if showError {
|
|
if showError {
|
|
- sendErrorResponse(w, "redirecturl field can't be empty'")
|
|
|
|
|
|
+ sendErrorResponse(w, "redirecturl field can't be empty")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ serverurl, err := mv(r, "serverurl", true)
|
|
|
|
+ if err != nil {
|
|
|
|
+ if showError {
|
|
|
|
+ if idp != "Gitlab" {
|
|
|
|
+ serverurl = ""
|
|
|
|
+ } else {
|
|
|
|
+ sendErrorResponse(w, "serverurl field can't be empty")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if idp != "Gitlab" {
|
|
|
|
+ serverurl = ""
|
|
|
|
+ }
|
|
|
|
+
|
|
clientid, err := mv(r, "clientid", true)
|
|
clientid, err := mv(r, "clientid", true)
|
|
if err != nil {
|
|
if err != nil {
|
|
if showError {
|
|
if showError {
|
|
- sendErrorResponse(w, "clientid field can't be empty'")
|
|
|
|
|
|
+ sendErrorResponse(w, "clientid field can't be empty")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
clientsecret, err := mv(r, "clientsecret", true)
|
|
clientsecret, err := mv(r, "clientsecret", true)
|
|
if err != nil {
|
|
if err != nil {
|
|
if showError {
|
|
if showError {
|
|
- sendErrorResponse(w, "clientsecret field can't be empty'")
|
|
|
|
|
|
+ sendErrorResponse(w, "clientsecret field can't be empty")
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
oh.coredb.Write("oauth", "idp", idp)
|
|
oh.coredb.Write("oauth", "idp", idp)
|
|
oh.coredb.Write("oauth", "redirecturl", redirecturl)
|
|
oh.coredb.Write("oauth", "redirecturl", redirecturl)
|
|
|
|
+ oh.coredb.Write("oauth", "serverurl", serverurl)
|
|
oh.coredb.Write("oauth", "clientid", clientid)
|
|
oh.coredb.Write("oauth", "clientid", clientid)
|
|
oh.coredb.Write("oauth", "clientsecret", clientsecret)
|
|
oh.coredb.Write("oauth", "clientsecret", clientsecret)
|
|
|
|
|