Use o fragmento de código de amostra e os gráficos de dados para remover usuários de um grupo usando GroupMembershipControl.
O seguinte fragmento de código de amostra apresenta como remover um usuário de um grupo usando o método update() e GroupMembershipControl. Para obter o código de amostra para remover um usuário de um grupo usando o GroupMemberControl, consulte o tópico Código de amostra para trabalhar com usuários, grupos, membros de grupos e associações a grupos.
Assegure-se de ter lido as informações e concluído as etapas descritas no tópico Pré-requisitos de Programação.
Antes de executar o seguinte código de amostra, assegure-se de ter criado usuários e grupos e designado os usuários como membros dos grupos. Para obter o código de amostra para fazer isso, consulte o tópico Código de amostra para trabalhar com usuários, grupos, membros de grupos e associações a grupos.
Inclua o seguinte fragmento de código no código do aplicativo e substitua as variáveis pelos valores reais que você deseja usar.
/**
* rmMemberFromGroupUsingGroupMembershipControl
* Remove o usuário do grupo usando o controle de associação ao grupo
* @param memberDn uniqueName do usuário
* @param groupDn uniqueame do grupo
*/
public static void rmMemberFromGroupUsingGroupMembershipControl(String memberDn, String groupDn)
{
try
{
DataObject root = SDOHelper.createRootDataObject();
DataObject entity = SDOHelper.createEntityDataObject(root, null, SchemaConstants.DO_GROUP);
// Configurar o uniqueName do grupo
entity.createDataObject(SchemaConstants.DO_IDENTIFIER).set(SchemaConstants.PROP_UNIQUE_NAME,
groupDn);
DataObject member1 = SDOHelper.createDataObject(SchemaConstants.WIM_NS_URI,
SchemaConstants.DO_ENTITY);
// Configurar o uniqueName do membro
member1.createDataObject(SchemaConstants.DO_IDENTIFIER).setString(SchemaConstants.PROP_UNIQUE_NAME,
memberDn);
// Obter o membro do grupo cuja designação precisa ser removida
entity.getList(SchemaConstants.DO_MEMBERS).add(member1);
// Configurar o controle de associação ao Grupo
DataObject grpMbrCtrl = SDOHelper.createControlDataObject(root, null,
SchemaConstants.DO_GROUP_MEMBERSHIP_CONTROL);
// Modo remover designação para remover o membro do grupo
grpMbrCtrl.setInt(SchemaConstants.PROP_MODIFY_MODE, SchemaConstants.VALUE_MODIFY_MODE_UNASSIGN);
System.out.println("Gráfico de dados de entrada antes de remover usuário do grupo usando o controle de Associação ao grupo"
+ printDO(root));
// Atualizar o grupo para remover seu membro
root = service.update(root);
System.out.println("Gráfico de dados de saída depois de remover usuário do grupo usando o controle de Associação ao Grupo"
+ printDO(root));
}
catch(Exception e)
{
e.printStackTrace();
}
}
Gráfico de dados de entrada para remover um membro de um grupo usando 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 dados de saída depois de remover um membro de um grupo usando 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>