ユーザーをグループから除去するためのサンプル・コード

このサンプル・コード・スニペットおよびデータ・グラフは、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>


利用条件 | フィードバック