NetIQ IDM - How to close a workflow request based on a group membership (NetIQ Userapp workflow forms)
Solution:
Suppose you want to close a request form by cancelling it upon a certain condition, such as if the caller is requires to be member of a specific eDirectory group.
1. On the request form, add a field called "recipient". i.e the caller of the form
2. Workflow->Start->Data-Item-Mapping, Add "recipient" as the source expression
3. On the request form field "recipient", Properties add event "onload"
4 Paste the following script:
function CheckGroupAccess(userDN)
{
var isMember;
var grp = IDVault.get(null,userDN,'user','group');
var access_grp = "ACCESS_GROUP_DN";
access_grp = access_grp.toLowerCase();
var lvEnt = Array();
lvEnt = grp;
var EntSize = lvEnt.length-1;
for (var i = 0; i <= EntSize; i++)
{
currentEnt=lvEnt[i].toString().toLowerCase();
if (currentEnt.match(access_grp))
{isMember="x";
break ;}
else
continue;
};
return isMember;
}
5. Add the following script on the same page below or above the previous one
try{
if (CheckGroupAccess(field.getValue()) != "x"){
alert("You are not authorized for this form, closing request form");
form.submit("CancelAction");
}
// DEPENDS ON YOUR CHOICE
//form.showMsg("Authorized ok, please proceed");
}catch(e){
alert(e);
}
Comments