feat: add AddToUsergroup option to OAuth2 providers

This commit is contained in:
jamesread 2025-12-25 01:36:05 +00:00
parent 9256b5c756
commit 7e1a38eb9e
2 changed files with 14 additions and 2 deletions

View File

@ -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)
} }

View File

@ -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 {