in controllers/keycloakrealm/chain/configure_email.go [78:123]
func convertEmailSpecToMap(
ctx context.Context,
emailSpec *common.SMTP,
secretsNamespace string,
k8sClient client.Client,
) (map[string]string, error) {
emailMap := make(map[string]string)
emailMap["from"] = emailSpec.Template.From
emailMap["fromDisplayName"] = emailSpec.Template.FromDisplayName
emailMap["replyTo"] = emailSpec.Template.ReplyTo
emailMap["replyToDisplayName"] = emailSpec.Template.ReplyToDisplayName
emailMap["envelopeFrom"] = emailSpec.Template.EnvelopeFrom
emailMap["host"] = emailSpec.Connection.Host
emailMap["port"] = strconv.Itoa(emailSpec.Connection.Port)
emailMap["ssl"] = strconv.FormatBool(emailSpec.Connection.EnableSSL)
emailMap["starttls"] = strconv.FormatBool(emailSpec.Connection.EnableStartTLS)
emailMap["auth"] = strconv.FormatBool(emailSpec.Connection.Authentication != nil)
if emailSpec.Connection.Authentication != nil {
username, err := secretref.GetValueFromSourceRefOrVal(
ctx,
&emailSpec.Connection.Authentication.Username,
secretsNamespace,
k8sClient,
)
if err != nil {
return nil, fmt.Errorf("unable to get username: %w", err)
}
emailMap["user"] = username
password, err := secretref.GetValueFromSourceRef(
ctx,
&emailSpec.Connection.Authentication.Password,
secretsNamespace,
k8sClient,
)
if err != nil {
return nil, fmt.Errorf("unable to get password: %w", err)
}
emailMap["password"] = password
}
return emailMap, nil
}