Skip to content

Commit

Permalink
Set-TssSecret - remove email setting params closes #125
Browse files Browse the repository at this point in the history
  • Loading branch information
wsmelton committed Mar 18, 2021
1 parent 9e35d28 commit 6e98382
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 123 deletions.
87 changes: 0 additions & 87 deletions src/functions/secrets/Set-Secret.ps1
Expand Up @@ -111,24 +111,6 @@ function Set-Secret {
[switch]
$Clear,

# Email when changed to true
[Parameter(ParameterSetName = 'all')]
[Parameter(ParameterSetName = 'email')]
[switch]
$EmailWhenChanged,

# Email when viewed to true
[Parameter(ParameterSetName = 'all')]
[Parameter(ParameterSetName = 'email')]
[switch]
$EmailWhenViewed,

# Email when HB fails to true
[Parameter(ParameterSetName = 'all')]
[Parameter(ParameterSetName = 'email')]
[switch]
$EmailWhenHeartbeatFails,

# Set the secret active secret is active
[Parameter(ParameterSetName = 'all')]
[Parameter(ParameterSetName = 'general')]
Expand Down Expand Up @@ -219,7 +201,6 @@ function Set-Secret {
$setSecretParams = $PSBoundParameters

$fieldParamSet = . $ParameterSetParams 'Set-TssSecret' 'field'
$emailParamSet = . $ParameterSetParams 'Set-TssSecret' 'email'
$generalParamSet = . $ParameterSetParams 'Set-TssSecret' 'general'

# Need to know if any of the params provided are in the specific parameter sets
Expand All @@ -230,12 +211,6 @@ function Set-Secret {
$fieldParams += $f
}
}
$emailParams = @()
foreach ($e in $emailParamSet) {
if ($setSecretParams.ContainsKey($e)) {
$emailParams += $e
}
}
$generalParams = @()
foreach ($g in $generalParamSet) {
if ($setSecretParams.ContainsKey($g)) {
Expand Down Expand Up @@ -268,7 +243,6 @@ function Set-Secret {
}

$invokeParamsField = . $GetInvokeTssParams $TssSession
$invokeParamsEmail = . $GetInvokeTssParams $TssSession
$invokeParamsGenearl = . $GetInvokeTssParams $TssSession
$invokeParamsOther = . $GetInvokeTssParams $TssSession
$invokeParamsCheckIn = . $GetInvokeTssParams $TssSession
Expand Down Expand Up @@ -415,67 +389,6 @@ function Set-Secret {
}
}
}
if ($emailParams.Count -gt 0) {
Write-Verbose "Working on email parameter set values"

# data object for Email Settings
$emailBody = @{
data = @{ }
}

if ($setSecretParams.ContainsKey('EmailWhenChanged')) {
$sendEmailWhenChanged = @{
dirty = $true
value = [boolean]$EmailWhenChanged
}
$emailBody.data.Add('sendEmailWhenChanged',$sendEmailWhenChanged)
}
if ($setSecretParams.ContainsKey('EmailWhenViewed')) {
$sendEmailWhenViewed = @{
dirty = $true
value = [boolean]$EmailWhenViewed
}
$emailBody.data.Add('sendEmailWhenViewed',$sendEmailWhenViewed)
}
if ($setSecretParams.ContainsKey('EmailWhenHeartbeatFails')) {
$sendEmailWhenHeartbeatFails = @{
dirty = $true
value = [boolean]$EmailWhenHeartbeatFails
}
$emailBody.data.Add('sendEmailWhenHeartbeatFails',$sendEmailWhenHeartbeatFails)
}

$uri = $TssSession.ApiUrl, 'secrets', $secret, 'email' -join '/'
$invokeParamsEmail.Uri = $uri
$invokeParamsEmail.Method = 'PATCH'
$invokeParamsEmail.Body = $emailBody | ConvertTo-Json -Depth 5

if ($restrictedParams.Count -gt 0) {
if ($PSCmdlet.ShouldProcess("SecretId: $secret", "Pre-check out secret for setting email settings")) {
. $CheckOutSecret $TssSession $setSecretParams $secret
}
}
if ($PSCmdlet.ShouldProcess("SecretId: $secret", "$($invokeParamsEmail.Method) $uri with:`n$($invokeParamsEmail.Body)`n")) {
Write-Verbose "$($invokeParamsEmail.Method) $uri with:`n$($invokeParamsEmail.Body)`n"
try {
$emailResponse = Invoke-TssRestApi @invokeParamsEmail
} catch {
Write-Warning "Issue configuring [$secret] email settings, verify Email Server is configured in Secret Server"
$err = $_
. $ErrorHandling $err
}

if ($emailResponse.PSObject.Properties.Name -contains 'sendEmailWhenChanged' -and $setSecretParams.ContainsKey('EmailWhenChanged')) {
Write-Verbose "Secret [$secret] email setting [Send Email When Changed] updated to $EmailWhenChanged"
}
if ($emailResponse.PSObject.Properties.Name -contains 'sendEmailWhenViewed' -and $setSecretParams.ContainsKey('EmailWhenViewed')) {
Write-Verbose "Secret [$secret] email setting [Send Email When Viewed] updated to $EmailWhenViewed"
}
if ($emailResponse.PSObject.Properties.Name -contains 'sendEmailWhenHeartbeatFails' -and $setSecretParams.ContainsKey('EmailWhenHeartbeatFails')) {
Write-Verbose "Secret [$secret] email setting [Send Email When Heartbeat Fails] updated to $EmailWhenHeartbeatFails"
}
}
}
if ($generalParams.Count -gt 0) {
Write-Verbose "Working on general parameter set values"
# data object for General Settings
Expand Down
36 changes: 0 additions & 36 deletions tests/secrets/Set-TssSecret.Tests.ps1
Expand Up @@ -14,9 +14,6 @@ Describe "$commandName verify parameters" {
<# Fields Params #>
'Field', 'Value', 'Clear',

<# Email settings #>
'EmailWhenChanged', 'EmailWhenViewed', 'EmailWhenHeartbeatFails',

<# General settings #>
'Active', 'EnableInheritSecretPolicy', 'FolderId', 'GenerateSshKeys', 'HeartbeatEnabled', 'SecretPolicy', 'Site', 'Template','IsOutOfSync', 'SecretName',

Expand Down Expand Up @@ -60,11 +57,6 @@ Describe "$commandName works" -Skip:$tssTestUsingWindowsAuth {
$secretId = $getSecrets.Where( { $_.SecretName -eq 'Test Setting Field' }).SecretId
$setField = Get-TssSecret -TssSession $session -Id $secretId

$secretId = $getSecrets.Where( { $_.SecretName -eq 'Test Setting Email' }).SecretId
$setEmail = Get-TssSecret -TssSession $session -Id $secretId
$secretId = $getSecrets.Where( { $_.SecretName -eq 'Test Setting Restricted Email' }).SecretId
$setRestrictedEmail = Get-TssSecret -TssSession $session -Id $secretId -Comment "tssModule Test execution"

$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 @@ -82,34 +74,6 @@ Describe "$commandName works" -Skip:$tssTestUsingWindowsAuth {
Set-TssSecret -TssSession $session -Id $setField.Id -Field Notes -Clear | Should -BeNullOrEmpty
}
}
Context "Sets email settings of a secret" -ForEach @{setEmail = $setEmail;setRestrictedEmail = $setRestrictedEmail;session = $session } {
AfterAll {
$invokeParams = @{}
if ($tssTestUsingWindowsAuth) {
$session = New-TssSession -SecretServer $ss -UseWindowsAuth
$invokeParams.UseDefaultCredentials = $true
} else {
$session = New-TssSession -SecretServer $ss -Credential $ssCred
$invokeParams.PersonalAccessToken = $session.AccessToken
}
$invokeParams.Uri = $session.ApiUrl, 'secrets', $setRestrictedEmail.Id, 'check-in' -join '/'
$invokeParams.Method = 'POST'
$invokeParams.Remove('ExpandProperty')
Invoke-TssRestApi @invokeParams
}
It "Should set EmailWhenChanged" {
Set-TssSecret -TssSession $session -Id $setEmail.Id -EmailWhenChanged:$false | Should -BeNullOrEmpty
}
It "Should set EmailWhenViewed" {
Set-TssSecret -TssSession $session -Id $setEmail.Id -EmailWhenViewed:$false | Should -BeNullOrEmpty
}
It "Should set EmailWhenHeartbeatFails" {
Set-TssSecret -TssSession $session -Id $setEmail.Id -EmailWhenHeartbeatFails:$false | Should -BeNullOrEmpty
}
It "Should set EmailWhenViewed on Restricted secret (require checkout/comment)" {
Set-TssSecret -TssSession $session -Id $setRestrictedEmail.Id -EmailWhenViewed:$false | Should -BeNullOrEmpty
}
}
Context "Sets general settings of a secret" -ForEach @{setGeneral = $setGeneral;setRestrictedGeneral = $setRestrictedGeneral; session = $session } {
AfterAll {
$invokeParams = @{}
Expand Down

0 comments on commit 6e98382

Please sign in to comment.