in providers/keycloak/realm.go [103:180]
func (g RealmGenerator) createLdapMapperResources(realmID, providerName string, mappers *[]interface{}) []terraformutils.Resource {
var resources []terraformutils.Resource
var providerID string
var mapperID string
var mapperName string
var mapperType string
var name string
mapperNames := make(map[string]int)
for _, mapper := range *mappers {
switch reflect.TypeOf(mapper).String() {
case "*keycloak.LdapFullNameMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapFullNameMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapFullNameMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapFullNameMapper).Name
mapperType = "full_name"
case "*keycloak.LdapGroupMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapGroupMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapGroupMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapGroupMapper).Name
mapperType = "group"
case "*keycloak.LdapRoleMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapRoleMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapRoleMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapRoleMapper).Name
mapperType = "role"
case "*keycloak.LdapHardcodedGroupMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapHardcodedGroupMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapHardcodedGroupMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapHardcodedGroupMapper).Name
mapperType = "hardcoded_group"
case "*keycloak.LdapHardcodedRoleMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapHardcodedRoleMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapHardcodedRoleMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapHardcodedRoleMapper).Name
mapperType = "hardcoded_role"
case "*keycloak.LdapMsadLdsUserAccountControlMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapMsadLdsUserAccountControlMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapMsadLdsUserAccountControlMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapMsadLdsUserAccountControlMapper).Name
mapperType = "msad_lds_user_account_control"
case "*keycloak.LdapMsadUserAccountControlMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapMsadUserAccountControlMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapMsadUserAccountControlMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapMsadUserAccountControlMapper).Name
mapperType = "msad_user_account_control"
case "*keycloak.LdapUserAttributeMapper":
providerID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapUserAttributeMapper).LdapUserFederationId
mapperID = reflect.ValueOf(mapper).Interface().(*keycloak.LdapUserAttributeMapper).Id
mapperName = reflect.ValueOf(mapper).Interface().(*keycloak.LdapUserAttributeMapper).Name
mapperType = "user_attribute"
default:
continue
}
name = "ldap_" + mapperType + "_mapper_" + normalizeResourceName(realmID) + "_" + normalizeResourceName(providerName) + "_" + normalizeResourceName(mapperName)
for k, v := range mapperNames {
if k == name {
v++
name += strconv.Itoa(v)
}
}
if name == "ldap_"+mapperType+"_mapper_"+normalizeResourceName(realmID)+"_"+normalizeResourceName(providerName)+"_"+normalizeResourceName(mapperName) {
mapperNames[name] = 1
}
resources = append(resources, terraformutils.NewResource(
mapperID,
name,
"keycloak_ldap_"+mapperType+"_mapper",
"keycloak",
map[string]string{
"realm_id": realmID,
"provider_id": providerID,
},
[]string{},
map[string]interface{}{},
))
}
return resources
}