SecretManagement.NetwrixPasswordSecure.Extension/functions.sharedinternal/ConvertTo-NetwrixFormMapping.ps1
function ConvertTo-NetwrixFormMapping { <# .SYNOPSIS Internal converter for converting a Source Definition to a form mapping. .DESCRIPTION Internal converter for converting a Source Definition to a form mapping. .PARAMETER SourceDefinition The input definition .EXAMPLE An example has to be provided .NOTES General notes #> [CmdletBinding()] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseOutputTypeCorrectly', '')] param ( [Parameter(Position = 0, Mandatory, ValueFromPipeline)] $SourceDefinition ) begin { } process { # Write-PSFMessage "########### HUUUUUBBBBBAAAA #########" foreach ($form in $SourceDefinition) { $mappingHash = [ordered]@{} $mappingHash.formName = $name $mappingHash.id = $form.id $mappingHash.fields = @{} $passwordFound = $false $userNameFound=$false foreach ($field in $form.items) { if ($field.Position -eq 0) { Write-PSFMessage "Name-ID: $($field.id)" $mappingHash.nameId=$field.id } switch ($field.ContainerItemType) { ContainerItemHeader { $mapToProperty = "SecretMetaData" } ContainerItemIp { $mapToProperty = "SecretMetaData" } ContainerItemMemo { $mapToProperty = "SecretMetaData" } ContainerItemPassword { if (-not $passwordFound) { $mapToProperty = "Password" $passwordFound = $true } else { $mapToProperty = "ignore" } } ContainerItemUserName { if (-not $userNameFound) { $mapToProperty = "UserName" $userNameFound = $true } else { $mapToProperty = "ignore" } } ContainerItemText { $mapToProperty = "SecretMetaData" } } $mappingHash.fields."$($field.id)" = @{ fieldName = $Field.name secretProperty = $mapToProperty id = $field.id } } if ($userNameFound -and $passwordFound){ $mappingHash.secretType="pscredential" }else{ $mappingHash.secretType="securestring" } $mappingHash } } end { } } |