$PageName = "User Info"
New-UDPage -Name $("$PageName") -Url "/Test" -Role @("Administrator") -Content {
$Session:LogSourceName = "User-Info.ps1"
$Session:Username = $User
if ($TempUsername = $ClaimsPrincipal.Claims | Where-Object { $_.Type -eq "samAccountName" } | Select-Object -First 1) {
$Session:Username = $TempUsername.Value
}
$ADProperties = @("C"
"CO"
"CanonicalName"
"CountryCode"
"Distinguishedname"
"EmployeeID"
"Enabled"
"Givenname"
"LastLogonDate"
"LockOutTime"
"MemberOf"
"MobilePhone"
"PasswordLastSet"
"PasswordNeverExpires"
"Surname"
"accountExpires"
"company"
"department"
"directReports"
"mail"
"manager"
"msDS-UserPasswordExpiryTimeComputed"
"physicalDeliveryOfficeName"
"proxyAddresses"
"sAMAccountName"
"streetAddress"
"telephoneNumber"
"title"
"userPrincipalName"
"userworkstations")
$Session:ADObject = $null
if ($UserName) {
$Session:ADObject = Get-ADUser -LDAPFilter "(&(objectClass=user)(sAMAccountName=$($UserName)))" -Properties $ADProperties
if (-not $Session:ADObject) {
Show-UDToast -Message "$($UserName ) not found" -CloseOnClick -Duration 15000 -Icon exclamation -IconColor Red
}
}
$GeneralColumns = @(
New-UDTableColumn -Property Name -Title " "
New-UDTableColumn -Property Status -Title " " -Render { $EventData.Status }
New-UDTableColumn -Property Value -Title " " -Render { $EventData.Value }
)
$ADColumns = @(
New-UDTableColumn -Property Name -Title " "
New-UDTableColumn -Property Status -Title " " -Render { $EventData.Status }
New-UDTableColumn -Property Value -Title " " -Render { $EventData.Value }
)
$AzureColumns = @(
New-UDTableColumn -Property Name -Title " " -Render { $EventData.Name }
New-UDTableColumn -Property Status -Title " " -Render { $EventData.Status }
New-UDTableColumn -Property Value -Title " " -Render { $EventData.Value }
)
$MailColumns = @(
New-UDTableColumn -Property Name -Title " "
New-UDTableColumn -Property Status -Title " " -Render { $EventData.Status }
New-UDTableColumn -Property Value -Title " " -Render { $EventData.Value }
)
$MultipleObjectsColumns = @(
New-UDTableColumn -Property Select -Title " " -ShowSort $false -Render {
New-UDButton -Id "User-Info_Dynamic_Button_$($EventData.sAMAccountName)" -Text "Select" -Size small -OnClick {
$Session:ADObject = $Session:ADObject | Where-Object { $_.sAMAccountName -eq $EventData.sAMAccountName }
Sync-UDElement -Id "User-Info_Multiple_Dynamic"
} -ShowLoading
}
New-UDTableColumn -Property sAMAccountName -Title "sAMAccountName" -DefaultSortColumn
New-UDTableColumn -Property Givenname -Title "Givenname"
New-UDTableColumn -Property Surname -Title "Surname"
New-UDTableColumn -Property mail -Title "Mail"
)
New-UDGrid -Container -Content {
New-UDGrid -Item -ExtraSmallSize 12 -Content {
New-UDElement -Id "User-Info_Search" -Tag "div" -Content {
New-UDTextbox -Id "User-Info_Search_Textbox" -Label "Username" -AutoFocus #-OnEnter { Invoke-UDEndpoint -Id "User-Info_Search_Button" -Session }
New-UDButton -Text "Search" -Id "User-Info_Search_Button" -OnClick {
$Value = (Get-UDElement -Id "User-Info_Search_Textbox").value
if ( $Value.length -lt 3) {
Show-UDToast -Message "$( $Value) is too short. It needs to be atleast 3 chars." -CloseOnClick -Duration 15000 -Icon exclamation -IconColor Red
}
else {
$Session:ADObject = Get-ADUser -LDAPFilter "(&(objectClass=user)(|(sAMAccountName=$($Value)*)(userPrincipalName=$($Value)*)(giveName=$($Value)*)(sn=$($Value)*)(displayname=$($Value)*)(cn=$($Value)*)))" -Properties $ADProperties
$Session:ADObject | convertto-json | Out-File "C:\temp\User$(Get-Random 100000000).json"
Sync-UDElement -Id "User-Info_Multiple_Dynamic"
Sync-UDElement -Id "User-Info_General_Dynamic"
Sync-UDElement -Id "User-Info_AD_Dynamic"
Sync-UDElement -Id "User-Info_Azure_Dynamic"
Sync-UDElement -Id "User-Info_Mail_Dynamic"
if (-not $Session:ADObject) {
Show-UDToast -Message "$($Value ) not found" -CloseOnClick -Duration 15000 -Icon exclamation -IconColor Red
}
}
} -ShowLoading
}
Invoke-UDJavaScript -JavaScript 'document.addEventListener("keyup", function(event) {
if (event.keyCode === 13) {
event.preventDefault();
document.getElementById("User-Info_Search_Button").click();
}
});'
}
#New-UDDynamic -Id "User-Info_Dynamic" -Content {
#if ($Session:ADObject) {
New-UDGrid -Item -ExtraSmallSize 2 -Content {}
New-UDGrid -Item -ExtraSmallSize 8 -Content {
New-UDDynamic -Id "User-Info_Multiple_Dynamic" -Content {
if (($Session:ADObject | Measure-Object).count -gt 1) {
New-UDTable -Id "User-Info_Dynamic_General_Card_Table" -Data $Session:ADObject -Dense -Columns $MultipleObjectsColumns -PageSize $Session:ADObject.Length
}
else {
#Sync-UDElement -Id "User-Info_General_Dynamic"
}
} -LoadingComponent {
New-UDElement -Id "User-Info_Dynamic_Progress" -Tag "div" -Content {
New-UDProgress -Circular
}
}
}
New-UDGrid -Item -ExtraSmallSize 6 -Content {
New-UDDynamic -Id "User-Info_General_Dynamic" -Content {
if (($Session:ADObject | Measure-Object).count -eq 1) {
$GeneralData = Get-UserGeneral -ADUser $Session:ADObject
$GeneralHeader = New-UDCardHeader -Title "General"
$GeneralBody = New-UDCardBody -Content {
New-UDTable -Id "User-Info_Dynamic_General_Card_Table" -Data $GeneralData -Dense -Columns $GeneralColumns -PageSize $GeneralData.Length
}
New-UDCard -Id "User-Info_Dynamic_General_Card" -Header $GeneralHeader -Body $GeneralBody -Footer $GeneralData.Footer
#Sync-UDElement -Id "User-Info_AD_Dynamic"
}
} -LoadingComponent {
New-UDElement -Id "User-Info_Dynamic_Progress" -Tag "div" -Content {
New-UDProgress -Circular
}
}
}
New-UDGrid -Item -ExtraSmallSize 6 -Content {
New-UDDynamic -Id "User-Info_AD_Dynamic" -Content {
if (($Session:ADObject | Measure-Object).count -eq 1) {
$ADData = Get-UserAD -ADUser $Session:ADObject
$ADHeader = New-UDCardHeader -Title "Active Directory"
$ADBody = New-UDCardBody -Content {
New-UDTable -Data $ADData -Dense -Columns $ADColumns -PageSize $ADData.Length
}
New-UDCard -Id "User-Info_AD_Card" -Header $ADHeader -Body $ADBody -Footer $ADData.Footer
#Sync-UDElement -Id "User-Info_Azure_Dynamic"
}
} -LoadingComponent {
New-UDElement -Id "User-Info_Dynamic_Progress" -Tag "div" -Content {
New-UDProgress -Circular
}
}
}
New-UDGrid -Item -ExtraSmallSize 6 -Content {
New-UDDynamic -Id "User-Info_Azure_Dynamic" -Content {
if (($Session:ADObject | Measure-Object).count -eq 1) {
$AzureData = Get-UserAzure -ADUser $Session:ADObject
$AzureHeader = New-UDCardHeader -Title "Azure/Cloud"
$AzureBody = New-UDCardBody -Content {
New-UDTable -Data $AzureData -Dense -Columns $AzureColumns -PageSize $AzureData.Length
}
New-UDCard -Id "User-Info_Azure_Card" -Header $AzureHeader -Body $AzureBody -Footer $AzureData.Footer
#Sync-UDElement -Id "User-Info_Mail_Dynamic"
}
} -LoadingComponent {
New-UDElement -Id "User-Info_Dynamic_Progress" -Tag "div" -Content {
New-UDProgress -Circular
}
}
}
New-UDGrid -Item -ExtraSmallSize 6 -Content {
New-UDDynamic -Id "User-Info_Mail_Dynamic" -Content {
if (($Session:ADObject | Measure-Object).count -eq 1) {
$MailData = Get-UserMail -ADUser $Session:ADObject
$MailHeader = New-UDCardHeader -Title "Mail"
$MailBody = New-UDCardBody -Content {
New-UDTable -Data $MailData -Dense -Columns $MailColumns -PageSize $MailData.Length
}
#New-UDCard -Id "User-Info_Mail_Card" -Header $MailHeader -Body $MailBody -Footer $MailData.Footer
}
} -LoadingComponent {
New-UDElement -Id "User-Info_Dynamic_Progress" -Tag "div" -Content {
New-UDProgress -Circular
}
}
}
}
}