Sun IdM Extended Attribute
Atributy, které má Sun Identity Manager (dále IdM) uloženy ve své repository je možné rozšířit o atributy vlastní (Extended Attribute). Jednou z možností, jak to provést je použitím IDM pluginu v NetBeans IDE. Postup je následující: Pravý klik na Custom Identitity Manager Object -> IdM -> Download object. V kategorii Common Configuration Object Types vybereme IdM Schema Configurator.
Chceme-li přidat např. atribut „isBoss“, vložíme do tagu <IDMAttributeConfigurations> následující řádek:
Atributy, které má Sun Identity Manager (dále IdM) uloženy ve své repository je možné rozšířit o atributy vlastní (Extended Attribute). Jednou z možností, jak to provést je použitím IDM pluginu v NetBeans IDE. Postup je následující: Pravý klik na Custom Identitity Manager Object -> IdM -> Download object. V kategorii Common Configuration Object Types vybereme IdM Schema Configurator.
Chceme-li přidat např. atribut „isBoss“, vložíme do tagu <IDMAttributeConfigurations> následující řádek:
<IDMAttributeConfiguration name='isBoss' description='isBoss flag' syntax='BOOLEAN'/>
Dále do tagu <IDMObjectClassConfiguration name=’User’ extends=’Principal’ description=’User description’> který je podelementem tagu <IDMObjectClassConfigurations> vložíme řádek:
<IDMObjectClassAttributeConfiguration name='isBoss' queryable='true' summary='true'/>
Po uložení změn, provedeme upload souboru do IdM (pravý klik v souboru -> IdM -> Upload Object) a restartujeme aplikační server. Po opětovném načtení tohoto souboru bychom měli v atributech najít „náš“ atribut „isBoss“.
Nyní je možné nastavit uživateli (uživatelům) tento atribut. To je možné např. pomocí následujícího workflow.
<Activity name="fillValue">
<Action id='0' application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='checkoutView'/>
<Argument name='id' value='$(accountId)'/>
<Argument name='type' value='User'/>
<Return from='view' to='view'/>
</Action>
<Action name="setup">
<set name='view.accounts[Lighthouse].isBoss'>
<s>true</s>
</set>
</Action>
<Action id='2' application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='checkinView'/>
<Argument name='view' value='$(view)'/>
</Action>
<Transition to='end'/>
<WorkflowEditor x='122' y='22'/>
</Activity>
Protože jsme u tohoto atributu nastavili parametr „queryable“ na true, je možné podle něj vyhledávat. Následující ukázka je část pravidla (rule), které vyhledá všechny uživatele, které mají nastavený atribut „isBoss“ na true a uloží je do proměnné „users“.
<defvar name="users">
<invoke name='getUsers' class='com.waveset.ui.FormUtil'>
<new class='com.waveset.session.InternalSession'/>
<map>
<s>conditions</s>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>isBoss</s>
<s>equals</s>
<s>true</s>
</new>
</list>
</map>
</invoke>
</defvar>