Mit dem Mustercode-Snippet und den Datengraphen können Sie unter Verwendung des Datenobjekts "GroupMembershipControl" Benutzer aus einer Gruppe entfernen.
Das folgende Mustercode-Snippet zeigt, wie ein Benutzer aus einer Gruppe entfernt wird. Hierzu werden die Methode update() und das Datenobjekt "GroupMembershipControl" verwendet. Den Mustercode zum Entfernen eines Benutzers aus einer Gruppe mit dem Datenobjekt "GroupMemberControl" enthält das Thema Mustercode für die Arbeit mit Benutzern, Gruppen, Gruppenmitgliedern und Gruppenzugehörigkeiten.
Stellen Sie sicher, dass Sie die Informationen gelesen und die Schritte ausgeführt haben, die im Thema Voraussetzungen für die Programmierung beschrieben sind.
Stellen Sie sicher, dass Sie Benutzer und Gruppen erstellt sowie die Benutzer als Mitglieder der Gruppen zugeordnet haben, bevor Sie den folgenden Mustercode ausführen. Den entsprechenden Mustercode für diese Tasks finden Sie unter Mustercode für die Arbeit mit Benutzern, Gruppen, Gruppenmitgliedern und Gruppenzugehörigkeiten.
Fügen Sie das folgende Code-Snippet zu Ihrem Anwendungscode hinzu und ersetzen Sie die Variablen durch die tatsächlichen Werte, die Sie verwenden wollen.
/**
* 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();
}
}
Eingabedatengraph für das Entfernen eines Mitglieds aus einer Gruppe mit dem Datenobjekt "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>
Ausgabedatengraph nach dem Entfernen eines Mitglieds aus einer Gruppe mit dem Datenobjekt "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>