From 8a901450880a0acc93cb7142d2f57eb50c4cdabb Mon Sep 17 00:00:00 2001 From: Shawn Melton <11204251+wsmelton@users.noreply.github.com> Date: Fri, 19 Mar 2021 00:05:10 -0500 Subject: [PATCH] Set-TssSecret - remove field params closes #118 --- src/functions/secrets/Set-Secret.ps1 | 75 --------------------------- tests/secrets/Set-TssSecret.Tests.ps1 | 15 ------ 2 files changed, 90 deletions(-) diff --git a/src/functions/secrets/Set-Secret.ps1 b/src/functions/secrets/Set-Secret.ps1 index 78534527..9e1e3674 100644 --- a/src/functions/secrets/Set-Secret.ps1 +++ b/src/functions/secrets/Set-Secret.ps1 @@ -92,25 +92,6 @@ function Set-Secret { [int] $TicketSystemId, - # Field name (slug) of the secret - [Parameter(ParameterSetName = 'all')] - [Parameter(Mandatory, ParameterSetName = 'field')] - [Alias('FieldName')] - [string] - $Field, - - # Value to set for the provided field - [Parameter(ParameterSetName = 'all')] - [Parameter(ParameterSetName = 'field')] - [string] - $Value, - - # Clear/blank out the field value - [Parameter(ParameterSetName = 'all')] - [Parameter(ParameterSetName = 'field')] - [switch] - $Clear, - # Set the secret active secret is active [Parameter(ParameterSetName = 'all')] [Parameter(ParameterSetName = 'general')] @@ -200,17 +181,10 @@ function Set-Secret { begin { $setSecretParams = $PSBoundParameters - $fieldParamSet = . $ParameterSetParams 'Set-TssSecret' 'field' $generalParamSet = . $ParameterSetParams 'Set-TssSecret' 'general' # Need to know if any of the params provided are in the specific parameter sets # if they are not we will null out the variable so the code below is not triggered - $fieldParams = @() - foreach ($f in $fieldParamSet) { - if ($setSecretParams.ContainsKey($f)) { - $fieldParams += $f - } - } $generalParams = @() foreach ($g in $generalParamSet) { if ($setSecretParams.ContainsKey($g)) { @@ -340,55 +314,6 @@ function Set-Secret { } } } - if ($fieldParams.Count -gt 0) { - Write-Verbose "Working on field parameter set values" - - if ($setSecretParams.ContainsKey('Clear') -and $setSecretParams.ContainsKey('Value')) { - Write-Warning "Clear and Value provided, only one is supported" - return - } - - $fieldBody = @{} - if ($setSecretParams.ContainsKey('Clear')) { - $fieldBody.Add('value',"") - } - if ($setSecretParams.ContainsKey('Value')) { - $fieldBody.Add('value',$Value) - } - - if ($restrictedParams.Count -gt 0) { - switch ($restrictedParams) { - 'Comment' { $fieldBody.Add('comment', $Comment) } - 'ForceCheckIn' { $fieldBody.Add('forceCheckIn', [boolean]$ForceCheckIn) } - 'TicketNumber' { $fieldBody.Add('ticketNumber', $TicketNumber) } - 'TicketSystemId' { $fieldBody.Add('ticketSystemId', $TicketSystemId) } - } - } - - $uri = $TssSession.ApiUrl, 'secrets', $secret, 'fields', $Field -join '/' - $invokeParamsField.Uri = $uri - $invokeParamsField.Method = 'PUT' - $invokeParamsField.Body = $fieldBody | ConvertTo-Json -Depth 5 - - if ($PSCmdlet.ShouldProcess("SecretId: $secret", "$($invokeParamsField.Method) $uri with:`n$($invokeParamsField.Body)`n")) { - Write-Verbose "$($invokeParamsField.Method) $uri with:`n$fieldBody`n" - try { - $fieldResponse = Invoke-TssRestApi @invokeParamsField - } catch { - Write-Warning "Issue setting field $Field on secret [$secret]" - $err = $_ - . $ErrorHandling $err - } - - if ($fieldResponse -eq $Value) { - Write-Verbose "Secret [$secret] field $Field updated successfully" - } elseif ($setSecretParams.ContainsKey('Clear') -and ($null -eq $fieldResponse)) { - Write-Verbose "Secret [$secret] field $Field cleared successfully" - } else { - Write-Verbose "Response for secret [$secret]: $fieldResponse" - } - } - } if ($generalParams.Count -gt 0) { Write-Verbose "Working on general parameter set values" # data object for General Settings diff --git a/tests/secrets/Set-TssSecret.Tests.ps1 b/tests/secrets/Set-TssSecret.Tests.ps1 index db02a79d..4e7eca76 100644 --- a/tests/secrets/Set-TssSecret.Tests.ps1 +++ b/tests/secrets/Set-TssSecret.Tests.ps1 @@ -11,9 +11,6 @@ Describe "$commandName verify parameters" { <# CheckIn #> 'CheckIn', - <# Fields Params #> - 'Field', 'Value', 'Clear', - <# General settings #> 'Active', 'EnableInheritSecretPolicy', 'FolderId', 'GenerateSshKeys', 'HeartbeatEnabled', 'SecretPolicy', 'Site', 'Template','IsOutOfSync', 'SecretName', @@ -54,9 +51,6 @@ Describe "$commandName works" -Skip:$tssTestUsingWindowsAuth { $getSecrets = Find-TssSecret -TssSession $session -FolderId $getFolder.id -IncludeInactive:$false - $secretId = $getSecrets.Where( { $_.SecretName -eq 'Test Setting Field' }).SecretId - $setField = Get-TssSecret -TssSession $session -Id $secretId - $secretId = $getSecrets.Where( { $_.SecretName -match 'Test Setting General Settings' }).SecretId $setGeneral = Get-TssSecret -TssSession $session -Id $secretId $secretId = $getSecrets.Where( { $_.SecretName -match 'Test Setting Restricted General Settings' }).SecretId @@ -65,15 +59,6 @@ Describe "$commandName works" -Skip:$tssTestUsingWindowsAuth { $secretId = $getSecrets.Where( { $_.SecretName -eq 'Test Setting AutoChangeEnabled AutoChangeNextPassword EnableInheritPermissions' }).SecretId $setOther = Get-TssSecret -TssSession $session -Id $secretId } - Context "Set a secret field" -ForEach @{setField = $setField;session = $session } { - It "Should set the value on the Notes field" { - $valueField = "your friendly local PowerShell Module" - Set-TssSecret -TssSession $session -Id $setField.Id -Field Notes -Value $valueField | Should -BeNullOrEmpty - } - It "Should Clear the Notes field" { - Set-TssSecret -TssSession $session -Id $setField.Id -Field Notes -Clear | Should -BeNullOrEmpty - } - } Context "Sets general settings of a secret" -ForEach @{setGeneral = $setGeneral;setRestrictedGeneral = $setRestrictedGeneral; session = $session } { AfterAll { $invokeParams = @{}