func userProfileConfigAttributeSpecToModel()

in controllers/keycloakrealm/chain/user_profile.go [176:228]


func userProfileConfigAttributeSpecToModel(v *common.UserProfileAttribute) keycloakgoclient.UserProfileAttribute {
	if v == nil {
		return keycloakgoclient.UserProfileAttribute{}
	}

	attr := keycloakgoclient.UserProfileAttribute{
		DisplayName: &v.DisplayName,
		Group:       &v.Group,
		Name:        &v.Name,
		Multivalued: &v.Multivalued,
	}

	annotations := make(map[string]interface{}, len(v.Annotations))
	for ak, av := range v.Annotations {
		annotations[ak] = av
	}

	attr.Annotations = &annotations
	validations := userProfileConfigValidationSpecToModel(v.Validations)
	attr.Validations = &validations

	if v.Permissions != nil {
		permissions := keycloakgoclient.UserProfileAttributePermissions{}
		edit := slices.Clone(v.Permissions.Edit)
		permissions.Edit = &edit

		view := slices.Clone(v.Permissions.View)
		permissions.View = &view

		attr.Permissions = &permissions
	}

	if v.Required != nil {
		required := keycloakgoclient.UserProfileAttributeRequired{}
		roles := slices.Clone(v.Required.Roles)
		required.Roles = &roles

		scopes := slices.Clone(v.Required.Scopes)
		required.Scopes = &scopes

		attr.Required = &required
	}

	if v.Selector != nil {
		selector := keycloakgoclient.UserProfileAttributeSelector{}
		scopes := slices.Clone(v.Selector.Scopes)
		selector.Scopes = &scopes

		attr.Selector = &selector
	}

	return attr
}