Hi All,
This document is a helping GUI tool to create custom capability having your required set of rights in it.
Issue:
We have a requirement to create a custom capability having set of selected rights for admins and out box IIQ does not have that, so i have created my own program to create that.
Below is the workflow having very basic requirement where I am giving name of new capability and selecting rights and submitting the request. User can extend this program and add check points they need.
You can create a quickLink and link this workflow...
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Workflow PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Workflow explicitTransitions="true" name="Create Custom Capability" type="LCMProvisioning">
<Description>This process is to Create Custom Capability</Description>
<Step icon="Start" name="Start">
<Transition to="CreateCustomCap"/>
</Step>
<Step icon="Stop" name="Stop" posX="299" posY="51"/>
<Step icon="Default" name="CreateCustomCap" posX="204" posY="123">
<Approval name="Create Custom Capability" owner="ref:launcher" return="capName,rights" send="">
<Form name="Create Custom Capability">
<Attributes>
<Map>
<entry key="pageTitle" value="Create Custom Capability"/>
</Map>
</Attributes>
<Button action="next" label="Submit"/>
<Button action="cancel" label="Cancel"/>
<Description>Create Custom Capability</Description>
<Section label="Create Capability">
<Field displayName="Capability Name:" name="capName" type="string"/>
<Field displayName="Rights:" multi="true" name="rights" type="sailpoint.object.SPRight"/>
</Section>
</Form>
</Approval>
<Transition to="checkSelectedValues"/>
</Step>
<Step icon="Default" name="checkSelectedValues">
<Script>
<Source>
import sailpoint.object.*;
import java.util.*;
ArrayList rightsList=new ArrayList();
System.out.println("rights: "+rights);
for(int j=0; j < rights.size(); j++)
{
SPRight spRtsObj=(SPRight )context.getObjectById(SPRight.class,rights.get(j));
rightsList.add(spRtsObj);
}
Capability cap = new Capability();
cap.setName(capName);
cap.setDisplayName(capName);
cap.setRights(rightsList);
System.out.println(cap.toXml());
context.saveObject(cap);
context.commitTransaction();
System.out.println("Capability "+capName+" has been created.");
</Source>
</Script>
<Transition to="Stop"/>
</Step>
</Workflow>
Hopefully this will help lots of people..
Also, refer How we can create custom capability in IIQ
Thanks
Janmejay
Not tested in my environment yet but the idea sounds great, thanks a lot.
Is it possible to create custom right from IIQ. Ex--> Ability to view only Events and Attributes tab in Identity