[903] | 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 | ?> |
---|