Private/UDElements/SystemUsers/UDElement-user_mfaStatus.ps1
function UDElement-user_mfaStatus () { param ( $refreshInterval, $unDrawColor ) New-UDElement -Tag "user_mfaStatus" -Id "user_mfaStatus" -RefreshInterval $refreshInterval -AutoRefresh -Endpoint { $LegendOptions = New-UDChartLegendOptions -Position bottom $Options = New-UDLineChartOptions -LegendOptions $LegendOptions New-UDChart -Title "User MFA Status" -Type Doughnut -Options $Options -Endpoint { Get-JCUser | Group-Object -Property totp_enabled, enable_user_portal_multifactor -NoElement | ForEach-Object { [PSCustomObject]@{ Name = $(if ($_.Name -eq "False, False") { "Not Required" } elseif ($_.Name -eq "False, True") { "Pending Configuration" } elseif ($_.Name -eq "True, False") { "Configured & Not Required" } elseif ($_.Name -eq "True, True") { "Configured & Required" }); Sort = $(if ($_.Name -eq "False, False") { "1" } elseif ($_.Name -eq "False, True") { "2" } elseif ($_.Name -eq "True, False") { "3" } elseif ($_.Name -eq "True, True") { "4" }); Count = $_.Count; } } | Sort-Object -Property Sort | Out-UDChartData -LabelProperty "Name" -DataProperty "Count" -BackgroundColor @("#e54852", "#ffb000" , "#006cac", "#2cc692") -HoverBackgroundColor @("#e54852", "#ffb000" , "#006cac", "#2cc692") } -OnClick { if ($EventData -ne "[]") { Show-UDModal -Content { New-UDTabContainer -Tabs { New-UDTab -Text "Not Required" -Content { New-UDGrid -Properties @("Username", "Email") -Endpoint { Get-JCUser -totp_enabled $False -enable_user_portal_multifactor $false | ForEach-Object { [PSCustomObject]@{ Username = $_.username; Email = $_.email; } } | Out-UDGridData } } New-UDTab -Text "Pending Configuration" -Content { New-UDGrid -Properties @("Username", "Email") -Endpoint { Get-JCUser -totp_enabled $False -enable_user_portal_multifactor $true | ForEach-Object { [PSCustomObject]@{ Username = $_.username; Email = $_.email; } } | Out-UDGridData } } New-UDTab -Text "Configured & Not Required" -Content { New-UDGrid -Properties @("Username", "Email") -Endpoint { Get-JCUser -totp_enabled $true -enable_user_portal_multifactor $False | ForEach-Object { [PSCustomObject]@{ Username = $_.username; Email = $_.email; } } | Out-UDGridData } } New-UDTab -Text "Configured & Required" -Content { New-UDGrid -Properties @("Username", "Email") -Endpoint { Get-JCUser -totp_enabled $true -enable_user_portal_multifactor $true | ForEach-Object { [PSCustomObject]@{ Username = $_.username; Email = $_.email; } } | Out-UDGridData } } } } } } } } |