Hey Everyone,
First post and still quite a newb with Active Roles so don't mind the brief ignorance you may see :)
Basically my end goal is to make a Tab in the web interface User Object properties window only visible when a virtual attribute is set to true.
I have the WI all ready with the visibility settings looking for my va to be true.
I am now trying to get a policy script which will populate that at the opening or right before the user properties opens so it can determine if the va is true or not for visibility.
I have all my logic setup to determine it in a policy script, I just cant seem to write anything to the VA .
Can anybody see if anything is seriously out of place or if I am completely in the wrong area to make my end goal happen. Don;t mind all the debug statements, Its just for testing.
My Put statement just doesn't work.
function onGetEffectivePolicy($Request) { if ($Request.Class -eq "User") { # Manual Test variables # $EmpID = "01234567" # $SAM = "comp1User1" # $BA = "Company 1" $DirObj.GetInfoEx(@("edsvaACsAMAccountRenameVIS"), 0) # Populate variables from user object $SAM = [string]$DirObj.Get("samAccountName") $BA = (get-qaduser $Request.name -DontUseDefaultIncludedPropertie -includedProperties 'extensionAttribute3').'extensionAttribute3' $EmpID = (get-qaduser $Request.name -DontUseDefaultIncludedPropertie -includedProperties 'employeeid').'employeeid' Write-Debug "onGetEffectivePolicy" "Entered $EmpID $SAM" Write-Debug "onGetEffectivePolicy" "Entered Name = Request.Name" $newSAM = "a" + $EmpID Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - EmpID is $EmpID `n SAM = $SAM `n NewSAm = $NewSAM BA = $BA" $coll = 'IT', 'Industrial Tech', 'ITBA', " ", "" if (!($BA)) { Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - Business Area is empty" $makeTabVisible = "false" break } else { Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - Business Area is not empty" } if ($coll -contains $BA) { Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - Business Area is not listed or is Industrial Tech" $makeTabVisible = "false" break } else { Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - Business Area is participating" } if ($EmpID -notmatch '^\d{8}$') { Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - EmployeeID is not present or is not exactly 8 digits" $makeTabVisible = $false break } else { Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - EmployeeID is exactly 8 digits" } if ($SAM -eq $newSAM) { #Write-Host "current sam already is converted" Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - Samaccount is already set to current standards" $makeTabVisible = "false" break } else { #Write-Host "current sam CAN be converted" Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - Samaccount CAN be converted" $makeTabVisible = "true" } Write-Debug "onGetEffectivePolicy" "SAMACCOUNT - End make visible" $Request.Put("edsvaACsAMAccountRenameVIS", "true") #$Request.SetEffectivePolicyInfo("edsvaACsAMAccountRenameVIS", $Constants.EDS_EPI_UI_GENERATED_VALUE, "true") } } function Get-Value { param ( $obj, $attr, [switch]$preload ) trap { continue } if ( $preload -eq $true ) { $obj.GetInfoEx(@($attr), 0) } return $obj.Get($attr) return $null } # Get's an attribute value if it exists from the Cache ### Not tested this as I just thought of this... function Get-Value { param ( $obj, $attr, [switch]$preload ) trap { continue } if ( $preload -eq $true ) { $obj.GetInfoEx(@($attr), 0) } $returnValue = $obj.Get($attr) if ( ( $returnValue -ne $null ) -or ( $preload -eq $true ) ) { Return $returnValue } else { $obj.GetInfoEx(@($attr), 0) } return $obj.Get($attr) } # Get's an attribute value if it exists from the Cache function Write-Debug { param ( [Parameter(Mandatory = $true)][string]$Function, [Parameter(Mandatory = $true)][string]$Message ) [bool]$DebugExt = $false if ($DebugExt) { Write-Host "$Function`n------------------------------`n$Message`n==============================" } else { $EventLog.ReportEvent($Constants.EDS_EVENTLOG_WARNING_TYPE, "$Function`n------------------------------`n$Message`n==============================") } }
Thanks again for any direction you might have.
Clay