false,"msg"=>"Codigo de operacao para inserir/remover lista invalido."); return $lista; } //Verifica se ja nao existe um arquivo no pool, para a mesma lista if(file_exists($nomelista)) $lista = array("status"=>false,"msg"=>"O arquivo indentificador da listagem \"" . $nomelista . "\" ja existe em \"".diretoriolistas."\"."); else{ //Cria o arquivo da lista $manipulador_arq = @fopen($nomelista,"w"); if (@fwrite($manipulador_arq, $nlista, strlen($nlista))){ @fclose($manipulador_arq); $lista = array("status"=>true,"msg"=>"Arquivo da lista \"". $nomelista . "\" criado no repositorio \"".diretoriolistas ."\"."); } else $lista = array("status"=>false,"msg"=>"Falha ao gravar o arquivo de definicao de lista \"". $nomelista ."\"."); } } else $lista = array("status"=>false,"msg"=>"Nao foi possivel acessar o repositorio das listas."); } else $lista = array("status"=>false,"msg"=>"A estrutura do repositorio nao se apresenta como um diretorio."); return($lista); } //Se o acesso ao script nao for via HTTP Post, encerra o interpretador if ($_SERVER['REQUEST_METHOD'] != 'POST'){ $retorno = array("status"=>false,"msg"=>"Acesso indevido ao script de sincronizacao de listas RHDS/Mailman."); echo serialize($retorno); exit; } //Se nao foi repassado o nome da lista a partir do Expresso if (strlen($_POST['uid']) <= 0){ $retorno = serialize(array("status"=>false,"msg"=>"Lista nao informada para o processamento(lista = \"".$_POST['uid']."\").")); echo $retorno; exit; } //Se o codigo da operacao for diferente de 1(cria lista) e 0(deleta lista), aborta o script if(($_POST['op'] < 0) || ($_POST['op'] > 1)){ $retorno = serialize(array("status"=>false,"msg"=>"Codigo de operacao para processamento do sincronizador nulo/invalido(codigo = \"".$_POST['op']."\")")); echo $retorno; exit; } //Armazena os dados do nome da lista, e operacao a proceder $uid = strtolower(trim($_POST['uid'])); $operacao = $_POST['op']; //PARA DEPURACAO DIRETA DO SCRIPT, PODE-SE HABILITAR O USO DE GET PARA ACESSAR DIRETAMENTE VIA URL //$uid = strtolower(trim($_GET['uid'])); //$operacao = strtolower(trim($_GET['op'])); //Diretorio padrao de armazenamento dos arquivos a serem gravados para a montagem de listas #define("diretoriolistas",getcwd()."/pool"); define("diretoriolistas", '/var/www/mailman/pool'); //Trata da criacao do arquivo temporario, contendo apenas o nome da lista //Primeiramente, confere se o diretorio com o pool de arquivos existe e esta disponivel if (file_exists(diretoriolistas)){ //Cria o arquivo da lista $retorno = GeraArquivoLista($uid, $uid, $operacao); } //O pool nao existe: tenta cria-lo else{ if(@mkdir(diretoriolistas)) $retorno = GeraArquivoLista($uid, $uid); else $retorno = array("status"=>false,"msg"=>"Nao conseguiu criar o repositorio de definicoes das listagens no servidor."); } //Retorna um vetor serializado para o objeto Ajax do Expresso que solicitou o processamento. //No indice "status" contem o booleano do processamento (true = OK, false = NOK), e em "msg" a string de tratamento echo('@@'.serialize($retorno).'@@'); ?>