Private/UDElements/SystemUsers/UDElement-user_passwordChanges.ps1

function UDElement-user_passwordChanges ()
{
    param (
        $refreshInterval,
        $unDrawColor
    )

    New-UDElement -Tag "user_passwordChanges" -Id "user_passwordChanges" -RefreshInterval $refreshInterval -AutoRefresh -Endpoint {

        if ($JCSettings.SETTINGS.passwordPolicy.enablePasswordExpirationInDays -eq "True")
        {
            [int]$script:PasswordExpirationDays = $JCSettings.SETTINGS.passwordPolicy.passwordExpirationInDays

            [int]$script:PasswordExpirationDaysSearch = $PasswordExpirationDays - 14

            if (Get-JCUser -filterDateProperty password_expiration_date -dateFilter after -date (Get-Date).AddDays($PasswordExpirationDaysSearch) -returnProperties password_expiration_date, username)
            {
                New-UDGrid -Title "Recent Password Changes"  -Headers @("Username", "Password Change Date")-Properties @("Username", "ChangeDate") -Endpoint {
                    Get-JCUser -activated $true -filterDateProperty password_expiration_date -dateFilter after -date (Get-Date).AddDays($PasswordExpirationDaysSearch) -returnProperties password_expiration_date, username | Sort-object 'password_expiration_date' -Descending | ForEach-Object {
                        [PSCustomObject]@{
                            Username   = (New-UDLink -Text $_.username -Url "https://console.jumpcloud.com/#/users/$($_._id)/details" -OpenInNewWindow);
                            ChangeDate = (Get-Date($_.password_expiration_date)).AddDays(-$PasswordExpirationDays)
                        }
                    } | Out-UDGridData
                }
            }

            else
            {
                New-UDCard -Title "Recent Password Changes"  -Content {
                    New-UDunDraw -Name "no-data" -Color $unDrawColor
                    New-UDParagraph -Text "No recent password changes"
                }
            }

        }
        else
        {
            New-UDCard -Title "Recent Password Changes"  -Content {
                New-UDunDraw -Name "alert" -Color $unDrawColor
                New-UDParagraph -Text "Password expiration must be enabled to view recent password changes."
            }
        }

    }

}