1 | #!/usr/bin/php |
---|
2 | |
---|
3 | |
---|
4 | <?php |
---|
5 | |
---|
6 | ######################################################################################### |
---|
7 | # # |
---|
8 | # Script que recebe como parametro a regional e verifica os campos de FUNCAO e SETOR # |
---|
9 | # dos usuarios em busca daqueles que estao cadastrados de maneira errada, de acordo # |
---|
10 | # com alguns padroes predefinidos. # |
---|
11 | # # |
---|
12 | # Faz uso do arquivo funcoes.php. # |
---|
13 | # Criado por: Rommel Cysne (em 19/10/2007) # |
---|
14 | ######################################################################################### |
---|
15 | |
---|
16 | |
---|
17 | |
---|
18 | $server = "10.200.113.64"; |
---|
19 | $port = "389"; |
---|
20 | $rootdn = "cn=admin,ou=expressolivre,ou=corp,dc=serpro,dc=gov,dc=br"; |
---|
21 | $pass = "senha"; |
---|
22 | $basedn = "dc=serpro,dc=gov,dc=br"; |
---|
23 | $maxOU = 3; |
---|
24 | |
---|
25 | $regionais = array('regbhe','regblm','regbsa','regcta','regfla','regpae','regrce','regrjo','regsdr','regspo'); |
---|
26 | |
---|
27 | //require('functions.php'); |
---|
28 | # . |
---|
29 | # . |
---|
30 | function lerRegional($server, $port, $rootdn, $pass, $basedn, $regional, $maxOU) { |
---|
31 | |
---|
32 | require('funcoes.php'); |
---|
33 | |
---|
34 | $connect=ldap_connect($server,$port); |
---|
35 | |
---|
36 | ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); |
---|
37 | ldap_bind($connect, $rootdn, $pass); |
---|
38 | |
---|
39 | $filter="(&(objectClass=serprousr)(uid=*))"; |
---|
40 | $justthese = array("uid","cn","ou","mail","usrfuncao"); |
---|
41 | |
---|
42 | $baseBusca = $regional.",".$basedn; |
---|
43 | |
---|
44 | $sr = ldap_search($connect, $baseBusca, $filter, $justthese); |
---|
45 | |
---|
46 | $info = ldap_get_entries($connect, $sr); |
---|
47 | |
---|
48 | $cont = $info['count']; |
---|
49 | // $maxOU = 3; |
---|
50 | |
---|
51 | $tmp = explode("=", $regional); |
---|
52 | $arquivo = $tmp[1]; |
---|
53 | |
---|
54 | echo "************************************************************************************************\n"; |
---|
55 | echo "FUNCAO E SETOR DOS USUARIOS DA REGIONAL: $arquivo (de acordo com cadastro do RHDS)\n"; |
---|
56 | echo "************************************************************************************************\n\n"; |
---|
57 | |
---|
58 | # Le Ldap e cria arquivos com lista e usuarios |
---|
59 | $i = 0; |
---|
60 | while($i <= ($cont-1)) { |
---|
61 | |
---|
62 | $cn = $info[$i]['cn'][0]; |
---|
63 | $func = strtolower($info[$i]['usrfuncao'][0]); |
---|
64 | //echo "Func -> $func \n". |
---|
65 | |
---|
66 | $j = 0; |
---|
67 | while($info[$i]['mail'][$j] != "") { |
---|
68 | |
---|
69 | |
---|
70 | |
---|
71 | if($func != "empregado") { |
---|
72 | $funcao = $func; |
---|
73 | //echo "Funcao -> $funcao \n"; |
---|
74 | |
---|
75 | if($listas[$funcao] == "") { |
---|
76 | //echo "Teste -> $listas[$funcao] \n"; |
---|
77 | |
---|
78 | $nomeUsu = utf8_decode($cn); |
---|
79 | $cpf = $info[$i]['uid'][0]; |
---|
80 | $setor = $info[$i]['ou'][$j]; |
---|
81 | echo "Usuario -> $nomeUsu\n"; |
---|
82 | echo "-- CPF -> $cpf\n"; |
---|
83 | |
---|
84 | if($funcao == "") { |
---|
85 | echo "-- FUNCAO NAO CADASTRADA\n"; |
---|
86 | }else { |
---|
87 | echo "-- FUNCAO DESCONHECIDA -> $funcao\n"; |
---|
88 | } |
---|
89 | |
---|
90 | if (preg_match("[^/]", $setor)){ |
---|
91 | echo "-- ERRO CADASTRO SETOR - $setor (Setor comeca com caractere especial)\n"; |
---|
92 | } |
---|
93 | |
---|
94 | if (preg_match("[/$]", $setor)){ |
---|
95 | echo "-- ERRO CADASTRO SETOR - $setor (Setor termina com caractere especial)\n"; |
---|
96 | } |
---|
97 | |
---|
98 | $ou = explode("/", $setor); //divide o setor pela barra (p/ verificar a numero de subsetores) |
---|
99 | $contOU = count($ou); |
---|
100 | //echo "ContOU -> $contOU\n"; |
---|
101 | if(($contOU > $maxOU) || ($contOU == "")) { // Verifica se cadastro do setor esta fora do padrao; |
---|
102 | echo "-- ERRO CADASTRO SETOR - $setor\n"; |
---|
103 | } |
---|
104 | |
---|
105 | $caracteres = strtr($setor, " :;,.<>?\()[]{}@#$%&*-_!", "1"); |
---|
106 | if($caracteres != $setor) { |
---|
107 | echo "-- ERRO CADASTRO SETOR - $setor\n"; |
---|
108 | } |
---|
109 | |
---|
110 | if($setor == "") { |
---|
111 | echo "-- SETOR NAO CADASTRADO\n"; |
---|
112 | } |
---|
113 | |
---|
114 | |
---|
115 | //echo "-- Setor -> $setor\n"; |
---|
116 | echo "***************************************************\n\n"; |
---|
117 | |
---|
118 | } //Fim do if($listas[$funcao] == ""); |
---|
119 | |
---|
120 | } //Fim do if($func != "empregado"); |
---|
121 | |
---|
122 | $j++; |
---|
123 | |
---|
124 | } //Fim do while dentro do usuario ($info[$i]['mail'][$j] != ""); |
---|
125 | |
---|
126 | $i++; |
---|
127 | |
---|
128 | } //Fim do while externo (usuario por usuario) ($i <= ($cont-1)); |
---|
129 | |
---|
130 | } |
---|
131 | |
---|
132 | $testeValor = 0; |
---|
133 | |
---|
134 | if ($argv[1] == ""){ |
---|
135 | echo "Favor passar sigla da regional\n\n"; |
---|
136 | echo "todas regspo regrce regblb regfla regsdr regcta regbhe regrjo regpae regbsa\n\n"; |
---|
137 | }elseif($argv[1] == "todas"){ |
---|
138 | foreach($regionais as $valor){ |
---|
139 | $regional = "ou=".$valor; |
---|
140 | lerRegional($server, $port, $rootdn, $pass, $basedn, $regional, $maxOU); |
---|
141 | } |
---|
142 | $testeValor = 1; |
---|
143 | }else{ |
---|
144 | $regional = "ou=".$argv[1]; |
---|
145 | lerRegional($server, $port, $rootdn, $pass, $basedn, $regional, $maxOU); |
---|
146 | $testeValor = 1; |
---|
147 | } |
---|
148 | |
---|
149 | if($testeValor == 1){ |
---|
150 | $msg2 = "Lista de inconsistências gerada!!!"; |
---|
151 | echo "$msg2\n"; |
---|
152 | } |
---|
153 | |
---|
154 | |
---|
155 | ?> |
---|