Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Appending String in AD update account attribute

Abhay_Yadav
New Contributor II
New Contributor II

Hi All,

1. I have a requirement to append [External] to the displayname of the AD account if the user is Contractor else send the name as it is.

eg: if user.employeetype==contractor then ${user.disaplayname}+ '[External]'

else ${user.displayname}

Can you please provide the Account update json for this.

2. Another issue is with Manager account of the user. If manager AD account is marked as "suspended from import" then also it is going into the else part.

"manager":"${if ( managerAccount == null || managerAccount?.comments == null || managerAccount?.comments == '' || managerAccount?.name.contains('Deleted') ) '' else {managerAccount?.comments}}"

Can you please suggest what should be done in this case?

3. If user is already present in the employee OU then account update fails. If use is not present in the same ou then moveusertoou works fine. How can i make sure MoverUserToOU only gets triggered if the user is in wrong OU i.e EmployeeType is contractor but account is in Employee OU.

,"moveUsertoOU": "${if(user.employeeType.equals('Contractor') && (user.customproperty21 !='Terminated')) {'OU=Test - Contractors,OU=xxx,DC=yyy,DC=zzz'} else if (user.employeeType.equals('Permanent') &&(user.customproperty21 != 'Terminated')) {'OU=Test - Active Employees,OU=xxx,DC=yyy,DC=zzz'} else if(user.customproperty21.equals('Terminated')) {'OU=Test - Terminated users,OU=xxx,DC=yyy,DC=zzz'}}"

 

Regards,

Abhay Yadav

 

 

5 REPLIES 5

stalluri
Valued Contributor
Valued Contributor

@Abhay_Yadav 

Displayname:

${if(user.employeetype.equals('contractor')){ user.displayname+'[External]'}else{user.displayname}}"



Manager:
"manager":"${managerAccount==null?'':managerAccount.comments}"
or
"${if(managerAccount==null){''}else {managerAccount.comments}"


MoveUser OU:
"${if(user.employeeType.equals('Contractor') && !user.customproperty21.equals('Terminated'))
'OU=Test - Contractors,OU=xxx,DC=yyy,DC=zzz'
else if (user.employeeType.equals('Permanent') && !user.customproperty21.equals('Terminated'))
'OU=Test - Active Employees,OU=xxx,DC=yyy,DC=zzz'
else if (user.customproperty21.equals('Terminated'))
'OU=Test - Terminated users,OU=xxx,DC=yyy,DC=zzz'}"

or 
"${if(user.employeeType == 'Contractor' && user.customproperty21 != 'Terminated')
{'OU=Test - Contractors,OU=xxx,DC=yyy,DC=zzz'}
else if (user.employeeType == 'Permanent' && user.customproperty21 != 'Terminated')
{'OU=Test - Active Employees,OU=xxx,DC=yyy,DC=zzz'}
else if (user.customproperty21 == 'Terminated')
{'OU=Test - Terminated users,OU=xxx,DC=yyy,DC=zzz'}
else
{''}}" // This passes an OU here.


Best Regards,
Sam Talluri
If you find this a helpful response, kindly consider selecting Accept As Solution and clicking on the kudos button.

rushikeshvartak
All-Star
All-Star

"displayname": "${if (user.employeeType.equals('Contractor')) {user.displayName + ' [External]'} else {user.displayName}}"

 

2. Handling Manager Account (issue with "suspended from import"):

"manager": "${if (managerAccount == null || managerAccount?.comments == null || managerAccount?.comments == '' || managerAccount?.name.contains('Deleted') || managerAccount?.status == 'Suspended From Import Service') '' else {managerAccount?.comments}}"

3. Ensuring moveUsertoOU is triggered only if the user is in the wrong OU:

"moveUsertoOU": "${if (user.employeeType.equals('Contractor') && user.customproperty21 != 'Terminated' && !user.currentOU.contains('Contractors')) {'OU=Test - Contractors,OU=xxx,DC=yyy,DC=zzz'} else if (user.employeeType.equals('Permanent') && user.customproperty21 != 'Terminated' && !user.currentOU.contains('Active Employees')) {'OU=Test - Active Employees,OU=xxx,DC=yyy,DC=zzz'} else if (user.customproperty21.equals('Terminated') && !user.currentOU.contains('Terminated users')) {'OU=Test - Terminated users,OU=xxx,DC=yyy,DC=zzz'}}"

 

 

 


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Hi @rushikeshvartak ,

I tried passing the display name but it is passing it without resolving the value .

Abhay_Yadav_0-1726219984436.png

 

Account update json:

{"department":"${user.departmentname}","streetAddress":"${user.street}","title":"${user.title}","sn":"${user.lastname}","displayName":"${if(user.employeeType.equals('Contractor')) {user.displayName + '[External]'} else {user.displayName}}","userAccountControl":"544","employeeID":"${user.username}"}

It should work refer https://forums.saviynt.com/t5/identity-governance/required-if-else-condition-syntax-in-ad-connection...


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

@Abhay_Yadav 

${if(user.employeeType.equals('Contractor')){user.displayName + 'External'} else {user.displayName}}
or
${user.employeeType == 'Contractor' ? user.displayName + '[External]' : user.displayName}
or
${(user.employeeType.equals('Contractor')) ? user.displayName + '[External]' : user.displayName}


https://forums.saviynt.com/t5/saviynt-knowledge-base/common-questions-around-using-groovy-functions-...



Best Regards,
Sam Talluri
If you find this a helpful response, kindly consider selecting Accept As Solution and clicking on the kudos button.