Utilice el fragmento de código y los gráficos de datos de ejemplo para eliminar usuarios de un grupo utilizando GroupMembershipControl.
El siguiente fragmento de código de ejemplo muestra cómo eliminar un usuario de un grupo utilizando el método update() y GroupMembershipControl. Para el código de ejemplo para eliminar un usuario de un grupo utilizando GroupMemberControl, consulte el tema Código de ejemplo para trabajar con usuarios, grupos, miembros de grupos y pertenencia a grupos.
Asegúrese de leer la información y completar los pasos que se describen en el tema Requisitos previos de programación.
Antes de ejecutar el siguiente código de ejemplo, asegúrese de haber creado grupos y usuarios, y de haber asignado los usuarios como miembros de grupos. Para el código de ejemplo para hacer esto, consulte el tema Código de ejemplo para trabajar con usuarios, grupos, miembros de grupos y pertenencia a grupos.
Añada el siguiente fragmento de código al código de aplicación y sustituya las variables por los valores reales que desea utilizar.
/**
* rmMemberFromGroupUsingGroupMembershipControl
* Elimina el usuario del grupo usando el control de pertenencia a grupos
* @param memberDn uniqueName del usuario
* @param groupDn uniqueame del grupo
*/
public static void rmMemberFromGroupUsingGroupMembershipControl(String memberDn, String groupDn)
{
try
{
DataObject root = SDOHelper.createRootDataObject();
DataObject entity = SDOHelper.createEntityDataObject(root, null, SchemaConstants.DO_GROUP);
// Establecer el uniqueName de grupo
entity.createDataObject(SchemaConstants.DO_IDENTIFIER).set(SchemaConstants.PROP_UNIQUE_NAME,
groupDn);
DataObject member1 = SDOHelper.createDataObject(SchemaConstants.WIM_NS_URI,
SchemaConstants.DO_ENTITY);
// Establecer el uniqueName de miembro
member1.createDataObject(SchemaConstants.DO_IDENTIFIER).setString(SchemaConstants.PROP_UNIQUE_NAME,
memberDn);
// Obtener el miembro del grupo que debe desasignarse
entity.getList(SchemaConstants.DO_MEMBERS).add(member1);
// Establecer el control de pertenencia a grupos
DataObject grpMbrCtrl = SDOHelper.createControlDataObject(root, null,
SchemaConstants.DO_GROUP_MEMBERSHIP_CONTROL);
// Modalidad de desasignación para eliminar el miembro del grupo
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));
// Actualizar el grupo para eliminar el miembro
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();
}
}
Gráfico de datos de entrada para eliminar un miembro de un grupo utilizando 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>
Gráfico de datos de salida después de eliminar un miembro de un grupo utilizando 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>