source: companies/serpro/scripts-listas/pegaListasNotes.php @ 903

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

Importacao inicial do Expresso do Serpro

Line 
1#!/usr/bin/php
2
3
4<?php
5
6
7#################################################################################################
8#                                                                                               #
9# Script que recebe um parametro, geralmente o nome da lista (ou array com nomes de listas)     #
10# e executa uma busca no diretorio do Notes pelos participantes destas listas e em seguida      #
11# gera uma lista no RHDS com o mesmo nome e os mesmos participantes, obedecendo as regras       #
12# de criacao de listas no RHDS.                                                                 #
13#                                                                                               #
14#                                               Criado por: Rommel Cysne (em 22/10/2007)        #
15#################################################################################################
16
17
18
19
20require('config.php');
21require('functions.php');
22
23
24$serverRHDS = "10.200.113.64";
25$portRHDS = "389";
26$rootdnRHDS = "cn=admin,ou=expressolivre,ou=corp,dc=serpro,dc=gov,dc=br";
27$passRHDS = "senha";
28$basednRHDS = "ou=listas,ou=expressolivre,ou=corp,dc=serpro,dc=gov,dc=br";
29
30
31$serverNotes = "10.30.2.25";
32$portNotes = "389";
33$rootdnNotes = "cn=admin,dc=correiolivre,dc=serpro,dc=gov,dc=br";
34$passNotes = "correio";
35$basednNotes = "ou=gruposNotes,dc=correiolivre,dc=serpro,dc=gov,dc=br";
36
37
38
39$retorno=encriptar($pass);
40$senhaCript=$retorno;
41
42
43
44
45function pegaListasNotes($serverNotes, $portNotes, $rootdnNotes, $passNotes, $basednNotes, $serverRHDS, $portRHDS, $rootdnRHDS, $passRHDS, $basednRHDS, $listasnotes, $senhaCript, $dominioLista, $administrador) {
46
47        $nomeListaNotes = $listasnotes;
48        $conta = (count($nomeListaNotes) - 1);
49//      echo "Variavel conta -> " . $conta . "\n";
50
51        foreach($nomeListaNotes as $value) {
52
53
54                //Estabelece conexao com servidor Notes
55                $connectNotes = ldap_connect($serverNotes,$portNotes);
56
57                ldap_set_option($connectNotes, LDAP_OPT_PROTOCOL_VERSION, 3);
58                ldap_bind($connectNotes, $rootdnNotes, $passNotes);
59
60                //Define o filtro de busca e que informacoes deverao ser retornadas pela busca realizada
61                $filterNotes = "(&(objectClass=OXUserObject)(cn=$value)(sn=Notes))";
62                $justtheseNotes = array("cn","alias");
63
64                $srNotes = ldap_search($connectNotes, $basednNotes, $filterNotes, $justtheseNotes);
65
66                $infoNotes = ldap_get_entries($connectNotes, $srNotes);
67
68                $contNotes = $infoNotes['count'];
69
70# Le Ldap e cria arquivos com lista e usuarios
71                $i = 0;
72                while($i <= ($contNotes-1)) {
73
74
75                        $cnNotes = $infoNotes[$i]['cn'][0];
76                        $nomeTmp = strtr($cnNotes, " _---", "-");
77                        //$nomeTmp = limpaString($nomeTmp);
78                        $nomeTmp = strtolower($nomeTmp);
79
80                        $nomeListaNotes = "lista-$nomeTmp-imp";
81
82
83                        $infoAddLista["objectclass"][0] = "person";
84                        $infoAddLista["objectclass"][1] = "posixAccount";
85                        $infoAddLista["objectclass"][2] = "phpgwaccount";
86                        $infoAddLista["objectclass"][3] = "mailman";
87                        $infoAddLista["objectclass"][4] = "inetorgperson";
88                        $infoAddLista["uid"] = "$nomeListaNotes";
89                        $infoAddLista["mail"] = "$nomeListaNotes"."$dominioLista";
90                        $infoAddLista["phpgwAccountExpires"] = '-1';
91                        $infoAddLista["phpgwAccountStatus"] = 'A';
92                        $infoAddLista["phpgwAccountType"] = "l";
93                        $infoAddLista["accountStatus"] = "active";
94                        $infoAddLista["sn"] = "$nomeListaNotes";
95                        $infoAddLista["cn"] = "$nomeListaNotes";
96                        $infoAddLista["homeDirectory"] = "/dev/null";
97                        $infoAddLista["gidNumber"] = "777";
98                        $infoAddLista["uidNumber"] = "-".Contador();
99                        $infoAddLista["admLista"] = "$administrador";
100                        $infoAddLista["listpass"] = "$senhaCript";
101                        $infoAddLista["defaultmembermoderation"] = "1";
102
103
104                        //Estabelece a conexao com o RHDS
105                        $connectRHDS = ldap_connect($serverRHDS,$portRHDS);
106
107                        ldap_set_option($connectRHDS, LDAP_OPT_PROTOCOL_VERSION, 3);
108                        ldap_bind($connectRHDS, $rootdnRHDS, $passRHDS);
109
110
111                        //Efetua a gravacao da lista vinda do Notes no RHDS
112                        $dnGravaLista = "uid=$nomeListaNotes".","."$basednRHDS";
113                        $addListaNotesRHDS = ldap_add($connectRHDS, $dnGravaLista, $infoAddLista);
114
115
116                        $j = 0;
117                        while($infoNotes[$i]['alias'][$j] != "") {
118                                $participanteNotes = $infoNotes[$i]['alias'][$j];
119
120                                $infoAddUsuario["mailforwardingaddress"][$j] = "$participanteNotes";
121
122                                $cmd = "find_member $participanteNotes";
123                                `$cmd`;
124//                              echo "Participantes : " . $participanteNotes . "\n";
125                                $j++;
126                        }
127
128                        $dnGravaUsuario = "uid=$nomeListaNotes".","."$basednRHDS";
129                        $addUsuario = ldap_mod_add($connectRHDS, $dnGravaUsuario, $infoAddUsuario);
130
131                        $i++;
132
133                } //fim do while externo (usuario por usuario)
134        }
135
136}
137
138
139# Chamada da funcao para inclusao no Mailman
140$nomeListaNotes = $argv[1];
141//pegaListasNotes($server, $port, $rootdn, $pass, $basedn, $nomeListaNotes);
142pegaListasNotes($serverNotes, $portNotes, $rootdnNotes, $passNotes, $basednNotes, $serverRHDS, $portRHDS, $rootdnRHDS, $passRHDS, $basednRHDS, $listasnotes, $senhaCript, $dominioLista, $administrador);
143
144?>
Note: See TracBrowser for help on using the repository browser.