4
0
Эх сурвалжийг харах

feat: add AddToUsergroup option to OAuth2 providers

jamesread 6 сар өмнө
parent
commit
7e1a38eb9e

+ 13 - 2
service/internal/auth/otoauth2/restapi_auth_oauth2.go

@@ -263,10 +263,21 @@ func (h *OAuth2Handler) HandleOAuthCallback(w http.ResponseWriter, r *http.Reque
 		Timeout: clientSettings.Timeout,
 		Timeout: clientSettings.Timeout,
 	}
 	}
 
 
-	userinfo := getUserInfo(h.cfg, userInfoClient, h.cfg.AuthOAuth2Providers[registeredState.providerName])
+	userinfo := getUserInfo(h.cfg, userInfoClient, providerConfig)
 
 
 	h.registeredStates[state].Username = userinfo.Username
 	h.registeredStates[state].Username = userinfo.Username
-	h.registeredStates[state].Usergroup = userinfo.Usergroup
+	
+	usergroup := userinfo.Usergroup
+	if providerConfig != nil && providerConfig.AddToUsergroup != "" {
+		// Append configured usergroup name if addToUsergroup is set
+		if usergroup != "" {
+			usergroup = usergroup + " " + providerConfig.AddToUsergroup
+		} else {
+			usergroup = providerConfig.AddToUsergroup
+		}
+	}
+	
+	h.registeredStates[state].Usergroup = usergroup
 
 
 	http.Redirect(w, r, "/", http.StatusFound)
 	http.Redirect(w, r, "/", http.StatusFound)
 }
 }

+ 1 - 0
service/internal/config/config.go

@@ -184,6 +184,7 @@ type OAuth2Provider struct {
 	InsecureSkipVerify bool     `koanf:"insecureSkipVerify"`
 	InsecureSkipVerify bool     `koanf:"insecureSkipVerify"`
 	CallbackTimeout    int      `koanf:"callbackTimeout"`
 	CallbackTimeout    int      `koanf:"callbackTimeout"`
 	CertBundlePath     string   `koanf:"certBundlePath"`
 	CertBundlePath     string   `koanf:"certBundlePath"`
+	AddToUsergroup     string   `koanf:"addToUsergroup"`
 }
 }
 
 
 type NavigationLink struct {
 type NavigationLink struct {