このサンプル・コード・スニペットおよびデータ・グラフは、GroupMembershipControl を使用してグループからユーザーを削除するために使用します。
以下のサンプル・コード・スニペットでは、update() メソッドおよび GroupMembershipControl を使用してグループからユーザーを削除する方法を示します。GroupMemberControl を使用してグループからユーザーを削除するサンプル・コードについては、「ユーザー、グループ、グループ・メンバー、およびグループ・メンバーシップを操作するためのサンプル・コード」トピックを参照してください。
「プログラミングの前提条件」トピックで説明されている情報を参照済みであること、またトピックの手順を実行済みであることを確認してください。
以下のサンプル・コードを実行する前に、必ずユーザーおよびグループを作成し、ユーザーをグループのメンバーとして割り当ててください。これを実行するサンプル・コードについては、「ユーザー、グループ、グループ・メンバー、およびグループ・メンバーシップを操作するためのサンプル・コード」トピックを参照してください。
次のコード・スニペットをアプリケーション・コードに追加し、変数 を実際に使用する値に置き換えます。
/**
* rmMemberFromGroupUsingGroupMembershipControl
* Removes the user from the group using the group membership control
* @param memberDn uniqueName of the user
* @param groupDn uniqueame of the group
*/
public static void rmMemberFromGroupUsingGroupMembershipControl(String memberDn, String groupDn)
{
try
{
DataObject root = SDOHelper.createRootDataObject();
DataObject entity = SDOHelper.createEntityDataObject(root, null, SchemaConstants.DO_GROUP);
// Set the group uniqueName
entity.createDataObject(SchemaConstants.DO_IDENTIFIER).set(SchemaConstants.PROP_UNIQUE_NAME,
groupDn);
DataObject member1 = SDOHelper.createDataObject(SchemaConstants.WIM_NS_URI,
SchemaConstants.DO_ENTITY);
// Set the member uniqueName
member1.createDataObject(SchemaConstants.DO_IDENTIFIER).setString(SchemaConstants.PROP_UNIQUE_NAME,
memberDn);
// Get the member of the group that need to be unassigned
entity.getList(SchemaConstants.DO_MEMBERS).add(member1);
// Set the Group membership control
DataObject grpMbrCtrl = SDOHelper.createControlDataObject(root, null,
SchemaConstants.DO_GROUP_MEMBERSHIP_CONTROL);
// Unassign mode to remove member from the group
grpMbrCtrl.setInt(SchemaConstants.PROP_MODIFY_MODE, SchemaConstants.VALUE_MODIFY_MODE_UNASSIGN);
System.out.println("Input datagraph before removing user from group using Group Membership control"
+ printDO(root));
// Update the group to remove its member
root = service.update(root);
System.out.println("Output datagraph after removing user from group using Group Membership control"
+ printDO(root));
}
catch(Exception e)
{
e.printStackTrace();
}
}
GroupMembershipControl を使用してグループからメンバーを削除するための入力データ・グラフ:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:Group">
<wim:identifier uniqueName="cn=group2,o=defaultWIMFileBasedRealm"/>
<wim:members>
<wim:identifier uniqueName="uid=user2,o=defaultWIMFileBasedRealm"/>
</wim:members>
</wim:entities>
<wim:controls xsi:type="wim:GroupMembershipControl" modifyMode="3"/>
</wim:Root>
</sdo:datagraph>
GroupMembershipControl を使用してグループからメンバーを削除した後の出力データ・グラフ:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:Group">
<wim:identifier externalName="cn=group2,o=defaultWIMFileBasedRealm" repositoryId="InternalFileRepository"
uniqueId="5187a438-cacc-4fe7-8aa7-c06aa76cec11" uniqueName="cn=group2,o=defaultWIMFileBasedRealm"/>
</wim:entities>
</wim:Root>
</sdo:datagraph>