Skip to content

Commit

Permalink
Set-TssSecret - remove field params closes #118
Browse files Browse the repository at this point in the history
  • Loading branch information
wsmelton committed Mar 19, 2021
1 parent d436f65 commit 8a90145
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 90 deletions.
75 changes: 0 additions & 75 deletions src/functions/secrets/Set-Secret.ps1
Expand Up @@ -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')]
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -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
Expand Down
15 changes: 0 additions & 15 deletions tests/secrets/Set-TssSecret.Tests.ps1
Expand Up @@ -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',

Expand Down Expand Up @@ -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
Expand All @@ -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 = @{}
Expand Down

0 comments on commit 8a90145

Please sign in to comment.