Fix bug when adding multiple built-in users (#729)

There was a problem with the root credentials being added as a user, and the name of the built in users had collisions with the root credentials

Signed-off-by: Daniel Valdivia <hola@danielvaldivia.com>
This commit is contained in:
Daniel Valdivia
2021-05-10 10:56:10 -07:00
committed by GitHub
parent 24410e7c85
commit b86a992a33

View File

@@ -560,11 +560,13 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
} }
tenantName := *tenantReq.Name tenantName := *tenantReq.Name
secretName := fmt.Sprintf("%s-secret", tenantName)
imm := true imm := true
var instanceSecret corev1.Secret var instanceSecret corev1.Secret
var users []*corev1.LocalObjectReference var users []*corev1.LocalObjectReference
if !(len(tenantReq.Idp.Keys) > 0) {
// Create the secret for the root credentials
secretName := fmt.Sprintf("%s-secret", tenantName)
instanceSecret = corev1.Secret{ instanceSecret = corev1.Secret{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: secretName, Name: secretName,
@@ -582,11 +584,11 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
if err != nil { if err != nil {
return nil, prepareError(err) return nil, prepareError(err)
} }
} else { // Create the secret any built-in user passed
users = append(users, &corev1.LocalObjectReference{Name: secretName}) if len(tenantReq.Idp.Keys) > 0 {
for i := 0; i < len(tenantReq.Idp.Keys); i++ { for i := 0; i < len(tenantReq.Idp.Keys); i++ {
users = append(users, &corev1.LocalObjectReference{Name: fmt.Sprintf("%s%d", secretName, i)}) users = append(users, &corev1.LocalObjectReference{Name: fmt.Sprintf("%s-user-%d", tenantName, i)})
instanceSecret = corev1.Secret{ userSecret := corev1.Secret{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("%s%d", secretName, i), Name: fmt.Sprintf("%s%d", secretName, i),
Labels: map[string]string{ Labels: map[string]string{
@@ -599,7 +601,7 @@ func getTenantCreatedResponse(session *models.Principal, params admin_api.Create
"CONSOLE_SECRET_KEY": []byte(*tenantReq.Idp.Keys[i].SecretKey), "CONSOLE_SECRET_KEY": []byte(*tenantReq.Idp.Keys[i].SecretKey),
}, },
} }
_, err := clientSet.CoreV1().Secrets(ns).Create(ctx, &instanceSecret, metav1.CreateOptions{}) _, err := clientSet.CoreV1().Secrets(ns).Create(ctx, &userSecret, metav1.CreateOptions{})
if err != nil { if err != nil {
return nil, prepareError(err) return nil, prepareError(err)
} }