source: companies/serpro/ajx_listas.php @ 903

Revision 903, 3.8 KB checked in by niltonneto, 15 years ago (diff)

Importacao inicial do Expresso do Serpro

Line 
1<?php
2  if (!$_SERVER['REQUEST_METHOD'] == 'POST'){
3    echo "ERRO: acesso indevido ao script";
4    exit;
5  }
6
7  //Para repassar os nomes das listas Notes a criar no expresso, segue neste bloco:
8  if (isset($_POST['listasproc'])){
9        $listasnotes = explode("|",trim($_POST['listasproc']));
10        /*
11         * OS NOMES DAS LISTAS NOTES ESTÃO ARMAZENADAS NO VETOR ACIMA DECLARADO ('$listasnotes')
12         * DEVE SEGUIR-SE O PROCESSAMENTO DA CARGA DAS LISTAS DO NOTES PARA O EXPRESSO, VIA CHAMADA
13         * A SCRIPT DE PROMPT OU OUTRA FORMA.
14         */
15        echo (count($listasnotes) - 1) . " listas Notes a replicar no Expresso";
16        exit;
17  } 
18 
19 
20  $integrantes = null;
21  if (trim($_POST['lista']) == 'expresso'){
22        //Busca as listas do RHDS/Mailman 
23        $host = "10.200.113.64";
24        $conta = "cn=admin,ou=expressolivre,ou=corp,dc=serpro,dc=gov,dc=br";
25        $basedn = "ou=listas,ou=expressolivre,ou=corp,dc=serpro,dc=gov,dc=br";
26        $senha = "senha";
27 
28        if (isset($_POST['listaid'])){
29                $integrantes = 'mailforwardingaddress';
30        $criterio_busca = "uid=".trim($_POST['listaid']);
31        $objeto_busca = array("mailForwardingAddress");
32        //echo '<font color="yellow">[CRITERIO] - Buscando em '. $host .' por ' .$criterio_busca .'.</font><br>';
33        }
34        else{
35                $criterio_busca = "uid=lista*";
36                $objeto_busca = array("uid");
37        }       
38  }
39 
40  elseif(trim($_POST['lista']) == 'notes'){
41        //Busca as listas do Notes 
42        $host = "10.30.2.25";
43        $conta = "cn=admin,dc=correiolivre,dc=serpro,dc=gov,dc=br";
44        $basedn = "ou=gruposNotes,dc=correiolivre,dc=serpro,dc=gov,dc=br";
45        $senha = "correio";
46 
47        if (isset($_POST['listaid'])){
48                $integrantes = 'alias';
49        $criterio_busca = "cn=".trim($_POST['listaid']);
50        $objeto_busca = array("alias");
51        //echo '<font color="yellow">[CRITERIO] - Buscando em '. $host .' por ' .$criterio_busca .'.</font><br>';
52        }
53        else{
54                $criterio_busca = "cn=*";
55                $objeto_busca = array("cn");
56        }
57  }
58 
59  //echo '<font color="yellow">[CRITERIO] - '. $criterio_busca .'</font><br>';
60  //exit;
61 
62  if ($conexao = ldap_connect($host)){
63        ldap_set_option($conexao, LDAP_OPT_TIMELIMIT, 10);
64
65    $ldapbind = ldap_bind($conexao);
66    if ($ldapbind){
67      //echo '<font color="grey">[OK] - Bind no host LDAP ' . $host . '.</font><br>';
68      $busca = ldap_search($conexao, $basedn, $criterio_busca, $objeto_busca);
69      //echo "Registros:" . ldap_count_entries($conexao, $busca);
70      $registros = ldap_count_entries($conexao, $busca);
71      if ($registros > 0){
72        //echo '<font color="grey">[OK] - '. $registros . ' listas encontradas no RHDS.</font><br>';
73        $dados = ldap_get_entries($conexao, $busca);
74       
75        $vet = array();
76        //Para carregar os nomes das listas
77        if(!$integrantes){             
78                for ($i = 0; $i < $registros; $i++){
79                        $lista_id = $dados[$i][$objeto_busca[0]][0];
80                        array_push($vet, $lista_id);
81                }
82        }
83        //Para carregar os integrantes de uma lista
84        else{
85                //echo '<font color="white">[INTEGRANTES] - '. count($dados[0][$integrantes]) . ' enderecos de email pertencem a lista "'.$criterio_busca.'". Adiciona somente não nulos.</font><br>';
86                for ($i = 0; $i < count($dados[0][$integrantes]); $i++){
87                        $email_integrante = $dados[0][$integrantes][$i];
88                        if ($email_integrante != null)
89                                array_push($vet, $email_integrante);
90                }               
91        }
92        //echo '<font color="blue">'. count($vet) . ' listas adicionadas para serialização.</font><br>';
93        echo json_encode($vet);
94      }
95      else
96        echo 'ERRO:Não foram encontradas listas no servidor LDAP '. $host." para \"$criterio_busca\"\n";
97    }
98    else
99      echo 'ERRO:Falha no comando bind LDAP para o host ' . $host . "!\n";
100    ldap_unbind($conexao);
101  }
102  else
103    echo 'ERRO:Falha ao estabelecer conexao LDAP com o host ' . $host ."!\n";   
104?>
Note: See TracBrowser for help on using the repository browser.