Esempio n. 1
0
 static function es_copia_trabajo($path)
 {
     $salida = null;
     $hubo_error = null;
     $cmd = "svn info \"{$path}\" --xml";
     toba_manejador_archivos::ejecutar($cmd, $salida, $hubo_error);
     if (trim($hubo_error) != '' || trim($salida) == '') {
         //Hubo algun tipo de error, puede ser que no se encontro el cliente, no WC, etc.
         return false;
     } elseif (!is_null($salida)) {
         $xml = simplexml_load_string($salida);
         return isset($xml->entry);
         //Me fijo si el xml corresponde a una WC
     }
 }
Esempio n. 2
0
 /**
  * Extrae los attachments PDFs de un documento. Requiere tener instalado en el path el ejecutable 'pdftk'. Si falla lanza una excepcion toba_error
  * @param string $archivo_pdf Path completo al archivo PDF de entrada que contiene attachments 
  * @param string $patron Patrón a extraer (formato preg_match), se asumen todas 
  * @return array Paths completo a archivos extraidos. Es responsabilidad del que llama borrar la carpeta contenedora posterior a su uso
  */
 static function pdf_get_attachments($archivo_pdf, $patron = null)
 {
     $carpeta_temp = toba::proyecto()->get_path_temp() . '/' . md5(uniqid(time()));
     if (!file_exists($carpeta_temp)) {
         if (!mkdir($carpeta_temp)) {
             throw new toba_error("No fue posible extraer los XML del pdf", "Error al intentar crear carpeta temporal {$carpeta_temp} . Verifique permisos");
         }
     }
     $stdout = null;
     $stderr = null;
     $comando = "pdftk {$archivo_pdf} unpack_files output {$carpeta_temp}";
     if (toba_manejador_archivos::ejecutar($comando, $stdout, $stderr) !== 0) {
         throw new toba_error("No fue posible extraer los XML del pdf", "Error al ejecutar comando '{$comando}': {$stdout}\n" . $stderr);
     }
     $archivos = toba_manejador_archivos::get_archivos_directorio($carpeta_temp, $patron);
     if (empty($archivos)) {
         toba_manejador_archivos::eliminar_directorio($carpeta_temp);
     }
     return $archivos;
 }
Esempio n. 3
0
 /**
  * Genera los archivos para los certificados del proyecto
  * @param toba_modelo_proyecto $proyecto
  * @param string $directorio
  * @throws toba_error_usuario 
  */
 static function generar_certificados(toba_modelo_proyecto $proyecto, $directorio = null)
 {
     //Si no se pasa directorio de salida, asigno por defecto el de instalacion del proyecto
     if (is_null($directorio)) {
         $directorio = $proyecto->get_dir_instalacion_proyecto();
     }
     //Busco en el directorio de la instalacion de Toba el archivo de configuracion para openssl
     $dir_inst = $proyecto->get_instalacion()->get_dir();
     if (!file_exists($dir_inst . '/openssl.ini')) {
         throw new toba_error_usuario("No existe el archivo '{$dir_inst}/openssl.ini'. Necesita copiarlo de la carpeta toba/php/modelo/var");
     }
     $cmd = "openssl req -x509 -nodes -days 20000 -newkey rsa:1024 -keyout {$directorio}/privada.key.sign -config {$dir_inst}/openssl.ini -out {$directorio}/publica.crt";
     $exito = toba_manejador_archivos::ejecutar($cmd, $stdout, $stderr);
     if ($exito != '0') {
         throw new toba_error_usuario($stderr . "\n Asegurese tener instalados los binarios de OpenSSL y disponibles en el path. Para comprobar ejecute 'openssl version'");
     }
     $cmd = "openssl rsa -in {$directorio}/privada.key.sign -out {$directorio}/privada.key";
     $exito = toba_manejador_archivos::ejecutar($cmd, $stdout, $stderr);
     if ($exito != '0') {
         throw new toba_error_usuario($stderr);
     }
     unlink("{$directorio}/privada.key.sign");
 }