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>