protected function get_schema_instalacion() { $instalacion = $this->proyecto->get_instalacion(); $instancia = $this->proyecto->get_instancia(); $params = $instalacion->get_parametros_base($instancia->get_ini_base()); return isset($params['schema']) ? $params['schema'] : null; }
/** * 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"); }