$valor\n"; $valor=$valor+1; fclose($abre); $abre = fopen($arq, "w"); $salva = fwrite($abre, $valor); fclose($abre); // echo "Valor -> $valor\n"; return $valor; } function geraArquivoDefault($arquivo,$defaultMemberModeration,$admlista) { if ($defaultMemberModeration == "1") $moderado = "0"; else $moderado = "1"; $realname = $arquivo; $servidor = "listas.serpro.gov.br"; $arquivo = $arquivo.".def"; $handle = fopen($arquivo,"w"); $cont = count($admlista); if ($cont <> 0){ fwrite($handle,"owner='"); for ($i=0; $i < $cont;$i++) { fwrite($handle,"$admlista[$i]"); if ($i < ($cont-1)){ fwrite($handle,"\\n"); } } fwrite($handle,"'\n"); } 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"); fclose($handle); echo "Gerado arquivo de definicao ->$arquivo\n"; } function apagaListaMailman($lista){ echo "\nRemove a lista -> $lista\n"; $removeLista = "rmlist -a $lista"; $cmd = `$removeLista`; } # Funcao que gera arquivo de log /var/log/sincListasMailMan.log; roda no Syslog. function criaLogGeral($msg) { #Grava log if ($msg <> "") { $log=`/usr/bin/logger -p local5.notice -t Sinc-Listas-MailMan-RHDS '$msg'`; } } function desencriptar($string) { $key='expresso-teste'; $result = ''; for($i=1; $i<=strlen($string); $i++) { $char = substr($string, $i-1, 1); $keychar = substr($key, ($i % strlen($key))-1, 1); $char = chr(ord($char)-ord($keychar)); $result.=$char; } return $result; echo "Convertendo senha Ldap -> Mailman\n"; } function atualizaModeracao($listaAlvo,$mailModerado) { // echo "Lista Alvo ---------> $listaAlvo\n"; $contaMail = count($mailModerado); // echo "Numero de usuarios -> $contaMail\n"; $listaListas = "list_members $listaAlvo"; $listaTotal = `$listaListas`; $lista = explode("\n", $listaTotal); $contaLista = count($lista); //Desmarca o bit de moderacao de todos os usuarios for($i=0;$i<$contaLista;$i++) { $funcao="set"; $usuarioUnset=$lista[$i]; if ($usuarioUnset <> "") moderaUsuario($usuarioUnset,$listaAlvo,$funcao); } //Marca o bit de moderacao dos usuarios enviados no array mail for($j=0;$j<$contaMail;$j++) { $funcao="unset"; $usuarioSet=$mailModerado[$j]; if ($usuarioSet <> "") moderaUsuario($usuarioSet,$listaAlvo,$funcao); } $contaMail = 0; } function moderaUsuario($usuario,$listaAlvo,$funcao) { if ($funcao == "set") setBitModeracao($usuario,$listaAlvo); if($funcao == "unset") unsetBitModeracao($usuario,$listaAlvo); } function setBitModeracao($usuario,$listaAlvo) { $cmd="/usr/sbin/withlist -r set_mod $listaAlvo -s $usuario"; $resultado=`$cmd`; } function unsetBitModeracao($usuario,$listaAlvo) { $cmd="/usr/sbin/withlist -r set_mod $listaAlvo -u $usuario"; $resultado=`$cmd`; } function encriptar($string) { $key='expresso-teste'; $result = ''; for($i=1; $i<=strlen($string); $i++) { $char = substr($string, $i-1, 1); $keychar = substr($key, ($i % strlen($key))-1, 1); $char = chr(ord($char)+ord($keychar)); $result.=$char; } return $result; } # Funcao que gera arquivo de log /var/log/criaListasRHDS.log; roda no Syslog. function criaLog($msg,$tipo) { if (($msg <> "")&&($tipo == "corp")){ $log=`/usr/bin/logger -p local4.notice -t Cria-Listas-Corp-RHDS '$msg'`; } if (($msg <> "")&&($tipo == "func")){ $log=`/usr/bin/logger -p local6.notice -t Cria-Listas-Func-RHDS '$msg'`; } if (($msg <> "")&&($tipo == "sinc")){ $log=`/usr/bin/logger -p local5.notice -t Sinc-Listas-MailMan-RHDS '$msg'`; } if (($msg <> "")&&($tipo == "limp")){ $log=`/usr/bin/logger -p local5.notice -t Functions '$msg'`; } } $listas = array("diretor" => "diretores", "supervisor" => "supervisores", "superintendente" => "superintententes", "chefe de setor" => "chefes-setor", "gerente de departamento" => "gerentes", "gerente de divisão" => "gerentes", "gerente de pólo" => "gerentes", "gerente de coordenação" => "gerentes", "gerente" => "gerentes", "assessor de diretoria i" => "assessores", "assessor de diretoria ii" => "assessores", "assessor de diretoria iii" => "assessores", "assessor de diretoria iv" => "assessores", "assessor de diretoria v" => "assessores", "assessor de diretoria vi" => "assessores", "chefe de divisão" => "chefes-divisao", "coord. proc. corporativo" => "coordenadores-corporativos", "consultor jurídico" => "consultores-juridicos", "chefe de coordenação" => "chefes-coordenacao", "chefe de coordenação i" => "chefes-coordenacao", "chefe de coordenação ii" => "chefes-coordenacao", "chefe de coordenação iii" => "chefes-coordenacao", "chefe de coordenação iv" => "chefes-coordenacao", "chefe de coordenação v" => "chefes-coordenacao", "chefe de coordenação vi" => "chefes-coordenacao", "chefe de projeto i" => "chefes-projeto", "chefe de projeto ii" => "chefes-projeto", "chefe de projeto iii" => "chefes-projeto", "chefe de projeto iv" => "chefes-projeto", "chefe de projeto v" => "chefes-projeto", "chefe de projeto vi" => "chefes-projeto", "chefe de pólo" => "chefes-polos", "gerente de projeto" => "gerentes-projeto", "oficial de gabinete" => "gabinete", "chefe gabinete do dp" => "gabinete", "auditor geral" => "auditores", "diretor serpros" => "diretor Serpros" ); function limpaString($texto){ $textoOri = $texto; $texto = strtr($texto, " çãáéíó", "-caaeio"); //Tira brancos $texto = preg_replace('/\s+/','', $texto); //Tira caracteres () {} [] - $texto = preg_replace('/\(|\)|\{|\}|\[|\]|\-|/','', $texto); //Tira barra invertida e a virgula $texto = $str = preg_replace('/\\\|\,/','/', $texto); if ($textoOri != $texto){ $msg = "Nome do setor sofreu limpeza"; criaLog($msg,"limp"); } return $texto; } ?>