用于从组中移除用户的样本代码

通过使用 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>


使用条款 | 反馈