1 | <?php |
---|
2 | |
---|
3 | function Contador() |
---|
4 | { |
---|
5 | $arq = "contador.txt"; |
---|
6 | $abre = fopen($arq, "r"); |
---|
7 | $valor = fgets($abre); |
---|
8 | // echo "Valor -> $valor\n"; |
---|
9 | $valor=$valor+1; |
---|
10 | fclose($abre); |
---|
11 | $abre = fopen($arq, "w"); |
---|
12 | $salva = fwrite($abre, $valor); |
---|
13 | fclose($abre); |
---|
14 | // echo "Valor -> $valor\n"; |
---|
15 | return $valor; |
---|
16 | } |
---|
17 | |
---|
18 | |
---|
19 | |
---|
20 | function geraArquivoDefault($arquivo,$defaultMemberModeration,$admlista) |
---|
21 | { |
---|
22 | if ($defaultMemberModeration == "1") |
---|
23 | $moderado = "0"; |
---|
24 | else |
---|
25 | $moderado = "1"; |
---|
26 | |
---|
27 | $realname = $arquivo; |
---|
28 | $servidor = "listas.serpro.gov.br"; |
---|
29 | $arquivo = $arquivo.".def"; |
---|
30 | $handle = fopen($arquivo,"w"); |
---|
31 | $cont = count($admlista); |
---|
32 | |
---|
33 | if ($cont <> 0){ |
---|
34 | fwrite($handle,"owner='"); |
---|
35 | for ($i=0; $i < $cont;$i++) |
---|
36 | { |
---|
37 | fwrite($handle,"$admlista[$i]"); |
---|
38 | if ($i < ($cont-1)){ |
---|
39 | fwrite($handle,"\\n"); |
---|
40 | } |
---|
41 | } |
---|
42 | fwrite($handle,"'\n"); |
---|
43 | } |
---|
44 | |
---|
45 | fwrite($handle, "preferred_language = 'pt_BR'\ninfo = 'Lista SERPRO'\nanonymous_list = False\nreply_goes_to_list = 1\nreal_name = '$realname'\nhost_name = '$servidor'\ndefault_member_moderation = $moderado\nmember_moderation_action = 1\nwelcome_msg = 'bem-vindo a lista'\ngoodbye_msg = 'Voce foi excluido da lista'\npreferred_language = 'pt_BR'\ndescription = 'Lista interna do SERPRO'\nreply_goes_to_list = True\nadmin_immed_notify = False\nmax_num_recipients = 1000\nautorespond_postings = 0\nautorespond_admin = 0\nautorespond_requests = 0\nmax_message_size = 1000\nadmin_notify_mchanges = False\nrespond_to_post_requests = False\nsend_reminders = False\narchive_private = False\narchive = False\narchive_volume_frequency = 1\nautorespond_postings = False\nautorespond_admin = False\nautorespond_requests = False\nconvert_html_to_plaintext = False\nsend_goodbye_msg = False\nsend_welcome_msg = False\nadministrivia = 1\nnew_member_options = 262\nadvertised = 1\nsubscribe_policy = 2\nunsubscribe_policy = 1\nprivate_roster = 2\ngeneric_nonmember_action = 0\nforward_auto_discards = 1\nobscure_addresses = 1\nsubject_prefix = ''\ninclude_list_post_header = 1\numbrella_list = True\numbrella_member_suffix = '-owner'\nhold_these_nonmembers = ['dont-discard-this-email@listas.serpro.gov.br']\nrequire_explicit_destination = 0\nmsg_footer =''\n"); |
---|
46 | |
---|
47 | fclose($handle); |
---|
48 | echo "Gerado arquivo de definicao ->$arquivo\n"; |
---|
49 | } |
---|
50 | |
---|
51 | function apagaListaMailman($lista){ |
---|
52 | echo "\nRemove a lista -> $lista\n"; |
---|
53 | $removeLista = "rmlist -a $lista"; |
---|
54 | $cmd = `$removeLista`; |
---|
55 | } |
---|
56 | |
---|
57 | # Funcao que gera arquivo de log /var/log/sincListasMailMan.log; roda no Syslog. |
---|
58 | function criaLogGeral($msg) |
---|
59 | { |
---|
60 | |
---|
61 | #Grava log |
---|
62 | if ($msg <> "") { |
---|
63 | $log=`/usr/bin/logger -p local5.notice -t Sinc-Listas-MailMan-RHDS '$msg'`; |
---|
64 | } |
---|
65 | |
---|
66 | } |
---|
67 | |
---|
68 | function desencriptar($string) |
---|
69 | { |
---|
70 | |
---|
71 | $key='expresso-teste'; |
---|
72 | $result = ''; |
---|
73 | for($i=1; $i<=strlen($string); $i++) |
---|
74 | { |
---|
75 | $char = substr($string, $i-1, 1); |
---|
76 | $keychar = substr($key, ($i % strlen($key))-1, 1); |
---|
77 | $char = chr(ord($char)-ord($keychar)); |
---|
78 | $result.=$char; |
---|
79 | } |
---|
80 | return $result; |
---|
81 | echo "Convertendo senha Ldap -> Mailman\n"; |
---|
82 | } |
---|
83 | |
---|
84 | function atualizaModeracao($listaAlvo,$mailModerado) |
---|
85 | { |
---|
86 | // echo "Lista Alvo ---------> $listaAlvo\n"; |
---|
87 | $contaMail = count($mailModerado); |
---|
88 | // echo "Numero de usuarios -> $contaMail\n"; |
---|
89 | $listaListas = "list_members $listaAlvo"; |
---|
90 | $listaTotal = `$listaListas`; |
---|
91 | $lista = explode("\n", $listaTotal); |
---|
92 | $contaLista = count($lista); |
---|
93 | //Desmarca o bit de moderacao de todos os usuarios |
---|
94 | for($i=0;$i<$contaLista;$i++) |
---|
95 | { |
---|
96 | $funcao="set"; |
---|
97 | $usuarioUnset=$lista[$i]; |
---|
98 | if ($usuarioUnset <> "") |
---|
99 | moderaUsuario($usuarioUnset,$listaAlvo,$funcao); |
---|
100 | } |
---|
101 | //Marca o bit de moderacao dos usuarios enviados no array mail |
---|
102 | for($j=0;$j<$contaMail;$j++) |
---|
103 | { |
---|
104 | $funcao="unset"; |
---|
105 | $usuarioSet=$mailModerado[$j]; |
---|
106 | if ($usuarioSet <> "") |
---|
107 | moderaUsuario($usuarioSet,$listaAlvo,$funcao); |
---|
108 | } |
---|
109 | $contaMail = 0; |
---|
110 | } |
---|
111 | |
---|
112 | function moderaUsuario($usuario,$listaAlvo,$funcao) |
---|
113 | { |
---|
114 | if ($funcao == "set") |
---|
115 | setBitModeracao($usuario,$listaAlvo); |
---|
116 | if($funcao == "unset") |
---|
117 | unsetBitModeracao($usuario,$listaAlvo); |
---|
118 | } |
---|
119 | |
---|
120 | function setBitModeracao($usuario,$listaAlvo) |
---|
121 | { |
---|
122 | $cmd="/usr/sbin/withlist -r set_mod $listaAlvo -s $usuario"; |
---|
123 | $resultado=`$cmd`; |
---|
124 | } |
---|
125 | |
---|
126 | |
---|
127 | function unsetBitModeracao($usuario,$listaAlvo) |
---|
128 | { |
---|
129 | $cmd="/usr/sbin/withlist -r set_mod $listaAlvo -u $usuario"; |
---|
130 | $resultado=`$cmd`; |
---|
131 | } |
---|
132 | |
---|
133 | function encriptar($string) |
---|
134 | { |
---|
135 | $key='expresso-teste'; |
---|
136 | $result = ''; |
---|
137 | for($i=1; $i<=strlen($string); $i++) |
---|
138 | { |
---|
139 | $char = substr($string, $i-1, 1); |
---|
140 | $keychar = substr($key, ($i % strlen($key))-1, 1); |
---|
141 | $char = chr(ord($char)+ord($keychar)); |
---|
142 | $result.=$char; |
---|
143 | } |
---|
144 | return $result; |
---|
145 | } |
---|
146 | |
---|
147 | # Funcao que gera arquivo de log /var/log/criaListasRHDS.log; roda no Syslog. |
---|
148 | function criaLog($msg,$tipo) |
---|
149 | { |
---|
150 | if (($msg <> "")&&($tipo == "corp")){ |
---|
151 | $log=`/usr/bin/logger -p local4.notice -t Cria-Listas-Corp-RHDS '$msg'`; |
---|
152 | } |
---|
153 | if (($msg <> "")&&($tipo == "func")){ |
---|
154 | $log=`/usr/bin/logger -p local6.notice -t Cria-Listas-Func-RHDS '$msg'`; |
---|
155 | |
---|
156 | } |
---|
157 | if (($msg <> "")&&($tipo == "sinc")){ |
---|
158 | $log=`/usr/bin/logger -p local5.notice -t Sinc-Listas-MailMan-RHDS '$msg'`; |
---|
159 | } |
---|
160 | if (($msg <> "")&&($tipo == "limp")){ |
---|
161 | $log=`/usr/bin/logger -p local5.notice -t Functions '$msg'`; |
---|
162 | } |
---|
163 | } |
---|
164 | |
---|
165 | $listas = array("diretor" => "diretores", |
---|
166 | "supervisor" => "supervisores", |
---|
167 | "superintendente" => "superintententes", |
---|
168 | "chefe de setor" => "chefes-setor", |
---|
169 | "gerente de departamento" => "gerentes", |
---|
170 | "gerente de divisão" => "gerentes", |
---|
171 | "gerente de pólo" => "gerentes", |
---|
172 | "gerente de coordenação" => "gerentes", |
---|
173 | "gerente" => "gerentes", |
---|
174 | "assessor de diretoria i" => "assessores", |
---|
175 | "assessor de diretoria ii" => "assessores", |
---|
176 | "assessor de diretoria iii" => "assessores", |
---|
177 | "assessor de diretoria iv" => "assessores", |
---|
178 | "assessor de diretoria v" => "assessores", |
---|
179 | "assessor de diretoria vi" => "assessores", |
---|
180 | "chefe de divisão" => "chefes-divisao", |
---|
181 | "coord. proc. corporativo" => "coordenadores-corporativos", |
---|
182 | "consultor jurídico" => "consultores-juridicos", |
---|
183 | "chefe de coordenação" => "chefes-coordenacao", |
---|
184 | "chefe de coordenação i" => "chefes-coordenacao", |
---|
185 | "chefe de coordenação ii" => "chefes-coordenacao", |
---|
186 | "chefe de coordenação iii" => "chefes-coordenacao", |
---|
187 | "chefe de coordenação iv" => "chefes-coordenacao", |
---|
188 | "chefe de coordenação v" => "chefes-coordenacao", |
---|
189 | "chefe de coordenação vi" => "chefes-coordenacao", |
---|
190 | "chefe de projeto i" => "chefes-projeto", |
---|
191 | "chefe de projeto ii" => "chefes-projeto", |
---|
192 | "chefe de projeto iii" => "chefes-projeto", |
---|
193 | "chefe de projeto iv" => "chefes-projeto", |
---|
194 | "chefe de projeto v" => "chefes-projeto", |
---|
195 | "chefe de projeto vi" => "chefes-projeto", |
---|
196 | "chefe de pólo" => "chefes-polos", |
---|
197 | "gerente de projeto" => "gerentes-projeto", |
---|
198 | "oficial de gabinete" => "gabinete", |
---|
199 | "chefe gabinete do dp" => "gabinete", |
---|
200 | "auditor geral" => "auditores", |
---|
201 | "diretor serpros" => "diretor Serpros" |
---|
202 | ); |
---|
203 | |
---|
204 | function limpaString($texto){ |
---|
205 | $textoOri = $texto; |
---|
206 | $texto = strtr($texto, " çãáéíó", "-caaeio"); |
---|
207 | //Tira brancos |
---|
208 | $texto = preg_replace('/\s+/','', $texto); |
---|
209 | //Tira caracteres () {} [] - |
---|
210 | $texto = preg_replace('/\(|\)|\{|\}|\[|\]|\-|/','', $texto); |
---|
211 | //Tira barra invertida e a virgula |
---|
212 | $texto = $str = preg_replace('/\\\|\,/','/', $texto); |
---|
213 | |
---|
214 | if ($textoOri != $texto){ |
---|
215 | $msg = "Nome do setor sofreu limpeza"; |
---|
216 | criaLog($msg,"limp"); |
---|
217 | } |
---|
218 | return $texto; |
---|
219 | } |
---|
220 | |
---|
221 | ?> |
---|