Ver Mensaje Individual
  #2  
Antiguo 13-04-2011
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Reputación: 16
fide_uci Va por buen camino
Bueno amigos, ya logro enumerar los grupos. Aca les dejo el codigo por si le hace falta a alguien. Ahora lo que no se es como agregarle un grupo a un usuario seleccionado.

Código Delphi [-]
//Enumerando los grupos
procedure ....
var
  dominio : string;
begin

  dominio := frmSessionInit.edt_domain.Text;

  if not frmSessionInit.chk_another_user.Checked then
    ADsOpenObject('WinNT://' + dominio,
        frmSessionInit.cbb_username.Text,
        frmSessionInit.edtPassword.Text, 1, IADsContainer,
        dom)
  else
    ADsGetObject('WinNT://' + dominio, IADsContainer, dom);

  dom.Filter := VarArrayOf(['group']);

  box_grupos.Clear;

  ADsEnumerateObjects(dom, insertar_grupos);
end;

Aca la funcion CallBack que se usa para procesar cada uno de los grupos por separado

Código Delphi [-]
var
  vItem: TListItem;
  groupType: OleVariant;
  tipoGrupo: string;
begin

  vItem := box_grupos.Items.Add;
  vItem.ImageIndex := 2;
  vItem.Caption := disp.Name;

  groupType := disp.Get('groupType');
  
  if (groupType = ADS_GROUP_TYPE_GLOBAL_GROUP) then
    tipoGrupo := 'Grupo Global'
  Else If (groupType = ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP) Then
    tipoGrupo := 'Grupo Local'
  else
    tipoGrupo := 'Desconocido';

  vItem.SubItems.Add(tipoGrupo);

  vItem.SubItems.Add(IADsGroup(disp).Description);
end;
Responder Con Cita