From a43ed335262fd542f349224aef918af5263c384d Mon Sep 17 00:00:00 2001 From: NickUfer Date: Wed, 14 Oct 2020 21:09:21 +0200 Subject: [PATCH] docs: add missing GitLab provider to the list of supported OIDC providers (#766) --- selfservice/strategy/oidc/provider_config.go | 21 ++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/selfservice/strategy/oidc/provider_config.go b/selfservice/strategy/oidc/provider_config.go index 48fea5b2607..f439aac4401 100644 --- a/selfservice/strategy/oidc/provider_config.go +++ b/selfservice/strategy/oidc/provider_config.go @@ -19,6 +19,9 @@ type Configuration struct { // Provider is either "generic" for a generic OAuth 2.0 / OpenID Connect Provider or one of: // - generic // - google + // - github + // - gitlab + // - microsoft Provider string `json:"provider"` // ClientID is the application's Client ID. @@ -76,19 +79,25 @@ func (c ConfigurationCollection) Provider(id string, public *url.URL) (Provider, for k := range c.Providers { p := c.Providers[k] if p.ID == id { + var providerNames []string + var addProviderName = func(pn string) string { + providerNames = append(providerNames, pn) + return pn + } + switch p.Provider { - case "generic": + case addProviderName("generic"): return NewProviderGenericOIDC(&p, public), nil - case "google": + case addProviderName("google"): return NewProviderGoogle(&p, public), nil - case "github": + case addProviderName("github"): return NewProviderGitHub(&p, public), nil - case "gitlab": + case addProviderName("gitlab"): return NewProviderGitLab(&p, public), nil - case "microsoft": + case addProviderName("microsoft"): return NewProviderMicrosoft(&p, public), nil } - return nil, errors.Errorf("provider type %s is not supported, supported are: %v", p.Provider, []string{"generic", "google", "github", "microsoft"}) + return nil, errors.Errorf("provider type %s is not supported, supported are: %v", p.Provider, providerNames) } } return nil, errors.WithStack(herodot.ErrNotFound.WithReasonf(`OpenID Connect Provider "%s" is unknown or has not been configured`, id))