From 2148a37b35bbb6957b642a318a401dc77a56181d Mon Sep 17 00:00:00 2001 From: DrIOS <58635327+DrIOSX@users.noreply.github.com> Date: Tue, 28 May 2024 11:02:25 -0500 Subject: [PATCH] fix: 6.5.2 aligned with test-template --- source/tests/Test-MailTipsEnabled.ps1 | 39 +++++++++++++++++++-------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/source/tests/Test-MailTipsEnabled.ps1 b/source/tests/Test-MailTipsEnabled.ps1 index 9a2efba..410a066 100644 --- a/source/tests/Test-MailTipsEnabled.ps1 +++ b/source/tests/Test-MailTipsEnabled.ps1 @@ -1,26 +1,45 @@ function Test-MailTipsEnabled { [CmdletBinding()] param ( - # Define your parameters here + # Aligned + # Parameters can be added if needed ) begin { - # Initialization code + # Dot source the class script if necessary + #. .\source\Classes\CISAuditResult.ps1 + # Initialization code, if needed $auditResult = [CISAuditResult]::new() } process { # 6.5.2 (L2) Ensure MailTips are enabled for end users + + # Retrieve organization configuration for MailTips settings $orgConfig = Get-OrganizationConfig | Select-Object MailTipsAllTipsEnabled, MailTipsExternalRecipientsTipsEnabled, MailTipsGroupMetricsEnabled, MailTipsLargeAudienceThreshold $allTipsEnabled = $orgConfig.MailTipsAllTipsEnabled -and $orgConfig.MailTipsGroupMetricsEnabled -and $orgConfig.MailTipsLargeAudienceThreshold -eq 25 $externalRecipientsTipsEnabled = $orgConfig.MailTipsExternalRecipientsTipsEnabled - # Since there is no direct CIS Control mapping, the control will be set as not applicable. - $auditResult.CISControl = "0" - $auditResult.CISControlVer = "v8" - $auditResult.CISDescription = "Explicitly Not Mapped" + # Prepare failure reasons and details based on compliance + $failureReasons = if (-not ($allTipsEnabled -and $externalRecipientsTipsEnabled)) { + "One or more MailTips settings are not configured as required." + } + else { + "N/A" + } + $details = if ($allTipsEnabled -and $externalRecipientsTipsEnabled) { + "MailTipsAllTipsEnabled: $($orgConfig.MailTipsAllTipsEnabled); MailTipsExternalRecipientsTipsEnabled: $($orgConfig.MailTipsExternalRecipientsTipsEnabled); MailTipsGroupMetricsEnabled: $($orgConfig.MailTipsGroupMetricsEnabled); MailTipsLargeAudienceThreshold: $($orgConfig.MailTipsLargeAudienceThreshold)" + } + else { + "One or more MailTips settings are not configured as required." + } + + # Create and populate the CISAuditResult object + $auditResult.CISControlVer = "v8" + $auditResult.CISControl = "0.0" # Explicitly Not Mapped + $auditResult.CISDescription = "Explicitly Not Mapped" $auditResult.Rec = "6.5.2" $auditResult.ELevel = "E3" $auditResult.ProfileLevel = "L2" @@ -28,16 +47,14 @@ function Test-MailTipsEnabled { $auditResult.IG2 = $false $auditResult.IG3 = $false $auditResult.RecDescription = "Ensure MailTips are enabled for end users" - $auditResult.Result = $allTipsEnabled -and $externalRecipientsTipsEnabled - $auditResult.Details = "MailTipsAllTipsEnabled: $($orgConfig.MailTipsAllTipsEnabled); MailTipsExternalRecipientsTipsEnabled: $($orgConfig.MailTipsExternalRecipientsTipsEnabled); MailTipsGroupMetricsEnabled: $($orgConfig.MailTipsGroupMetricsEnabled); MailTipsLargeAudienceThreshold: $($orgConfig.MailTipsLargeAudienceThreshold)" - $auditResult.FailureReason = if (-not $auditResult.Result) { "One or more MailTips settings are not configured as required." } else { "N/A" } + $auditResult.Details = $details + $auditResult.FailureReason = $failureReasons $auditResult.Status = if ($auditResult.Result) { "Pass" } else { "Fail" } } end { - # Return auditResult + # Return the audit result return $auditResult } } -