From 542056e57c72408526cab1dc5de63e2d3919a087 Mon Sep 17 00:00:00 2001 From: Wilfried OLLIVIER Date: Wed, 23 Sep 2020 14:54:47 +0200 Subject: [PATCH] Reorganize SetProject logic --- pkg/validation/options.go | 5 ++--- providers/gitlab.go | 6 ++---- providers/gitlab_test.go | 5 ++--- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/pkg/validation/options.go b/pkg/validation/options.go index 3eb90ad860..eb3344a24f 100644 --- a/pkg/validation/options.go +++ b/pkg/validation/options.go @@ -292,9 +292,8 @@ func parseProviderInfo(o *options.Options, msgs []string) []string { case *providers.GitLabProvider: p.AllowUnverifiedEmail = o.InsecureOIDCAllowUnverifiedEmail p.Groups = o.GitLabGroup - if len(o.GitlabProjects) > 0 { - p.SetProjects(o.GitlabProjects) - } + p.Projects = o.GitlabProjects + p.SetProjectScope() p.EmailDomains = o.EmailDomains if o.GetOIDCVerifier() != nil { diff --git a/providers/gitlab.go b/providers/gitlab.go index dbeaaa0619..7985911bde 100644 --- a/providers/gitlab.go +++ b/providers/gitlab.go @@ -70,10 +70,8 @@ func (p *GitLabProvider) Redeem(ctx context.Context, redirectURL, code string) ( return } -// SetProjects adds Projects to a GitLabProvider struct and extends OAuth2 needed scope -func (p *GitLabProvider) SetProjects(projects []string) { - p.Projects = projects - // lazy add read_api to scope if needed +// SetProjectScope ensure read_api is added to scope when filtering on projects +func (p *GitLabProvider) SetProjectScope() { if !strings.Contains(p.Scope, "read_api") { p.Scope += " read_api" } diff --git a/providers/gitlab_test.go b/providers/gitlab_test.go index a9ab3c1bb9..0f86ace26d 100644 --- a/providers/gitlab_test.go +++ b/providers/gitlab_test.go @@ -176,9 +176,8 @@ var _ = Describe("Gitlab Provider Tests", func() { p.AllowUnverifiedEmail = true session := &sessions.SessionState{AccessToken: "gitlab_access_token"} - if len(in.projects) > 0 { - p.SetProjects(in.projects) - } + p.Projects = in.projects + p.SetProjectScope() if len(in.groups) > 0 { p.Groups = in.groups