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

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

Importacao inicial do Expresso do Serpro

Line 
1<?php
2
3function 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
20function 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
51function 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.
58function 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
68function 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
84function 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
112function moderaUsuario($usuario,$listaAlvo,$funcao)
113{
114        if ($funcao == "set")
115                setBitModeracao($usuario,$listaAlvo);
116        if($funcao == "unset")
117                unsetBitModeracao($usuario,$listaAlvo);
118}
119
120function setBitModeracao($usuario,$listaAlvo)
121{
122        $cmd="/usr/sbin/withlist -r set_mod $listaAlvo -s $usuario";
123        $resultado=`$cmd`;
124}
125
126
127function unsetBitModeracao($usuario,$listaAlvo)
128{
129        $cmd="/usr/sbin/withlist -r set_mod $listaAlvo -u $usuario";
130        $resultado=`$cmd`;
131}
132
133function 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.
148function 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
204function 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?>
Note: See TracBrowser for help on using the repository browser.