Skip to content

Commit f514c47

Browse files
feat: [PACLOUD-386] Support Multiple Additional Default Client Scopes-Part2
1 parent 5c09013 commit f514c47

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

controllers/keycloakclient_reconciler.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"fmt"
66
"os"
7+
"strings"
78

89
kc "github.com/movewp3/keycloakclient-controller/api/v1alpha1"
910
"github.com/movewp3/keycloakclient-controller/pkg/common"
@@ -171,33 +172,35 @@ func (i *DedicatedKeycloakClientReconciler) ReconcileScopeMappings(state *common
171172
}
172173
}
173174

174-
func getAdditionalDefaultClientScope() string {
175-
additionalDefaultClientScope, found := os.LookupEnv("ADDITIONAL_DEFAULT_CLIENT_SCOPE")
175+
func getAdditionalDefaultClientScopes() []string {
176+
additionalDefaultClientScopes, found := os.LookupEnv("ADDITIONAL_DEFAULT_CLIENT_SCOPES")
176177
if !found {
177-
return ""
178+
return []string{}
178179
}
179-
return additionalDefaultClientScope
180+
181+
return strings.Split(additionalDefaultClientScopes, ",")
180182
}
181183

182184
func (i *DedicatedKeycloakClientReconciler) ReconcileClientScopes(state *common.ClientState, cr *kc.KeycloakClient, desired *common.DesiredClusterState) {
183185

184186
logKcc.Info(fmt.Sprintf("ReconcileClientScopes %s", cr.Spec.Client.Name))
185187

186-
oldClientScopes := []string{}
188+
oldClientScopes := cr.Spec.Client.DefaultClientScopes
187189
//addedDefaultClientScope := false
188190

189191
additionalDefaultClientScopes := cr.Spec.Client.DefaultClientScopes
190-
if getAdditionalDefaultClientScope() != "" && !slices.Contains(cr.Spec.Client.DefaultClientScopes, getAdditionalDefaultClientScope()) && cr.Spec.Client.PublicClient {
191-
logKcc.Info(fmt.Sprintf("Add default client scope %v",
192-
getAdditionalDefaultClientScope()))
193-
194-
oldClientScopes = cr.Spec.Client.DefaultClientScopes
195-
//addedDefaultClientScope = true
196-
additionalDefaultClientScopes = append(cr.Spec.Client.DefaultClientScopes, getAdditionalDefaultClientScope())
197-
192+
if cr.Spec.Client.PublicClient {
193+
for _, scope := range getAdditionalDefaultClientScopes() {
194+
if !slices.Contains(cr.Spec.Client.DefaultClientScopes, scope) {
195+
logKcc.Info(fmt.Sprintf("Add default client scope %v",
196+
getAdditionalDefaultClientScopes()))
197+
additionalDefaultClientScopes = append(additionalDefaultClientScopes, scope)
198+
}
199+
}
198200
defer func() {
199201
cr.Spec.Client.DefaultClientScopes = oldClientScopes
200202
}()
203+
201204
}
202205

203206
defaultClientScopes := model.FilterClientScopesByNames(state.AvailableClientScopes, additionalDefaultClientScopes)

0 commit comments

Comments
 (0)