function __construct()
 {
     $archivo_ini_instalacion = toba::nucleo()->toba_instalacion_dir() . '/saml_onelogin.ini';
     if (is_file($archivo_ini_instalacion)) {
         $parametros = parse_ini_file($archivo_ini_instalacion, true);
         if (isset($parametros['basicos']['atributo_usuario'])) {
             $this->atributo_usuario = $parametros['basicos']['atributo_usuario'];
         }
         if (isset($parametros['basicos']['permite_login_toba'])) {
             $this->permite_login_toba = $parametros['basicos']['permite_login_toba'] == 1;
         }
         if (isset($parametros['sp']['auth_source'])) {
             $this->auth_source = $parametros['sp']['auth_source'];
         }
         if (!isset($parametros['sp']['proyecto_login'])) {
             throw new toba_error("Debe definir proyecto_login en " . $archivo_ini_instalacion);
         }
         $this->proyecto_login = trim($parametros['sp']['proyecto_login']);
         //Creo configuracion del SP
         $this->settingsInfo = array('sp' => $this->get_sp_config());
         //Agrego configuracion del IdP
         if (isset($parametros['sp']['idp'])) {
             $this->idp = $parametros['sp']['idp'];
         }
         $idp_name = 'idp:' . $this->idp;
         if (isset($parametros[$idp_name]) && !empty($parametros[$idp_name])) {
             $this->settingsInfo['idp'] = $this->get_idp_config($parametros[$idp_name], $this->idp);
         }
     }
 }
 function __construct($server = null, $dn = null)
 {
     $this->server = $server;
     $this->dn = $dn;
     //--- Levanto la CONFIGURACION de ldap.ini
     $archivo_ini_instalacion = toba::nucleo()->toba_instalacion_dir() . '/ldap.ini';
     if (is_file($archivo_ini_instalacion)) {
         $datos = parse_ini_file($archivo_ini_instalacion, true);
         if (isset($datos['basicos']['server'])) {
             $this->server = $datos['basicos']['server'];
         }
         if (isset($datos['basicos']['dn'])) {
             $this->dn = $datos['basicos']['dn'];
         }
         if (isset($datos['basicos']['bind_dn'])) {
             $this->bind_dn = $datos['basicos']['bind_dn'];
         }
         if (isset($datos['basicos']['bind_pass'])) {
             $this->bind_pass = $datos['basicos']['bind_pass'];
         }
         if (isset($datos['basicos']['filter'])) {
             $this->filter = $datos['basicos']['filter'];
         }
     }
 }
Example #3
0
 function __construct()
 {
     $archivo_ini_instalacion = toba::nucleo()->toba_instalacion_dir() . '/cas.ini';
     if (is_file($archivo_ini_instalacion)) {
         $parametros = parse_ini_file($archivo_ini_instalacion, true);
         if (isset($parametros['basicos']['server'])) {
             $this->host = $parametros['basicos']['server'];
         }
         if (isset($parametros['basicos']['port'])) {
             $this->puerto = (int) $parametros['basicos']['port'];
         }
         if (isset($parametros['basicos']['url'])) {
             $this->url = $parametros['basicos']['url'];
         }
         if (isset($parametros['basicos']['certificadoCA'])) {
             //Certificado para verificar que el servidor es quien dice ser por phpCas.
             $this->archivo_certificado = $parametros['basicos']['certificadoCA'];
         }
         if (isset($parametros['basicos']['validar_cn'])) {
             $this->validar_cn = $parametros['basicos']['validar_cn'] == 1;
         }
         if (isset($parametros['basicos']['permite_login_toba'])) {
             $this->permite_login_toba = $parametros['basicos']['permite_login_toba'] == 1;
         }
     }
 }
Example #4
0
 function evt__validar()
 {
     $ok = $this->validar_xmls();
     $certificado = file_get_contents(toba::nucleo()->toba_instalacion_dir() . "/i__desarrollo/p__toba_referencia/publica.crt");
     $ok = $ok && $this->validar_certificado($certificado);
     if ($ok) {
         toba::notificacion()->agregar("Validación OK", "info");
     }
 }
Example #5
0
 /**
  * Permite ejecutar items de consola
  * @consola_parametros [-p Proyecto] [-t id_item]
  * @gtk_icono instanciar.png  
  */
 function opcion__ejecutar()
 {
     $id_instancia = $this->get_id_instancia_actual(true);
     $id_proyecto = $this->get_id_proyecto_actual(true);
     $param = $this->get_parametros();
     if (!isset($param['-t'])) {
         throw new toba_error("Es necesario definir una OPERACION. Utilice el modificador '-t'");
     }
     $item = $param['-t'];
     require_once "nucleo/toba.php";
     toba::nucleo()->acceso_consola($id_instancia, $id_proyecto, $item);
 }
 function __construct()
 {
     $archivo_ini_instalacion = toba::nucleo()->toba_instalacion_dir() . '/saml.ini';
     if (is_file($archivo_ini_instalacion)) {
         $parametros = parse_ini_file($archivo_ini_instalacion, true);
         if (isset($parametros['basicos']['auth_source'])) {
             $this->auth_source = $parametros['basicos']['auth_source'];
         }
         if (isset($parametros['basicos']['atributo_usuario'])) {
             $this->atributo_usuario = $parametros['basicos']['atributo_usuario'];
         }
         if (isset($parametros['basicos']['path_sp'])) {
             $this->path_sp = $parametros['basicos']['path_sp'];
         }
         if (isset($parametros['basicos']['permite_login_toba'])) {
             $this->permite_login_toba = $parametros['basicos']['permite_login_toba'] == 1;
         }
     }
     require_once $this->path_sp . '/lib/_autoload.php';
 }
 function __construct($campos = null, $providers = null, $permite_login_toba = false)
 {
     $this->campos = $campos;
     $this->providers = $providers;
     $this->permite_login_toba = false;
     //--- Levanto la CONFIGURACION de ldap.ini
     $archivo_ini_instalacion = toba::nucleo()->toba_instalacion_dir() . '/openid.ini';
     if (is_file($archivo_ini_instalacion)) {
         $parametros = parse_ini_file($archivo_ini_instalacion, true);
         $sufijo = 'provider_';
         foreach ($parametros as $campo => $valor) {
             if (substr($campo, 0, strlen($sufijo)) == $sufijo) {
                 $valor['id'] = substr($campo, strlen($sufijo));
                 $this->providers[$valor['id']] = $valor;
             }
         }
         $sufijo = 'campo_';
         foreach ($parametros as $campo => $valor) {
             if (substr($campo, 0, strlen($sufijo)) == $sufijo) {
                 $this->campos[substr($campo, strlen($sufijo))] = $valor;
             }
         }
         if (isset($parametros['basicos']['permite_login_toba'])) {
             $this->permite_login_toba = $parametros['basicos']['permite_login_toba'];
         }
         if (isset($parametros['basicos']['crear_usuario'])) {
             $this->crear_usuario = $parametros['basicos']['crear_usuario'];
             if (isset($parametros['basicos']['crear_usuario_proyecto'])) {
                 $this->crear_usuario_proyecto = $parametros['basicos']['crear_usuario_proyecto'];
             }
             $this->crear_usuario_perfil_funcional = $parametros['basicos']['crear_usuario_perfil_funcional'];
         }
         $this->campo_usuario = $parametros['basicos']['campo_usuario'];
         if (isset($parametros['basicos']['campo_nombre'])) {
             $this->campo_nombre = explode(' ', trim($parametros['basicos']['campo_nombre']));
         } else {
             $this->campo_nombre = array($this->campo_usuario);
         }
     }
 }
Example #8
0
 /**
  * Retorna un objeto de consultas sobre un componente-toba
  *
  * @param array $id Arreglo con dos claves 'componente' y 'proyecto'
  * @param string $tipo Tipo de componente. Si no se brinda se busca automáticamente, aunque requiere mas toba_recursos
  * @param boolean $en_profundidad Los componentes cargan los info de sus dependencias
  * @param array $datos Datos pre-procesados que necesita el objeto-info, si no se especifica se buscan
  * @param boolean $refrescar_cache Indica que el objeto debe recargarse si ya se habia cargado anteriormente en el request
  * @param boolean $resumumidos Indica si que se realiza solo la carga basica de datos del componente
  * @return info_componente
  */
 static function get_info($id, $tipo = null, $en_profundidad = true, $datos = null, $refrescar_cache = false, $resumidos = false)
 {
     $refrescar_cache = $refrescar_cache || self::$refresco_forzado;
     // Controla la integridad de la clave
     self::control_clave_valida($id);
     if (!isset($tipo)) {
         $tipo = toba_cargador::get_tipo($id);
     }
     //--- Si esta en el cache lo retorna
     $hash = $id['componente'] . "-" . $id['proyecto'] . "-" . $tipo;
     if (!isset(self::$cache_infos[$hash]) || $refrescar_cache) {
         if (!isset($datos)) {
             if (toba::nucleo()->utilizar_metadatos_compilados($id['proyecto'])) {
                 $datos = self::get_metadatos_compilados($id, $tipo == 'toba_item');
             } else {
                 $datos = toba_cargador::instancia()->get_metadatos_extendidos($id, $tipo, null, $resumidos);
             }
         }
         $clase = $tipo . '_info';
         $obj = new $clase($datos, $en_profundidad, $resumidos);
         self::$cache_infos[$hash] = $obj;
     }
     return self::$cache_infos[$hash];
 }
Example #9
0
 private static function get_usuario_db($id_base, $parametros)
 {
     $usuario = $parametros['usuario'];
     $clave = $parametros['clave'];
     if (isset($parametros['conexiones_perfiles'])) {
         //Trata de sacarlo del archivo .ini asociado
         $perfiles = toba::manejador_sesiones()->get_perfiles_funcionales_activos();
         if (empty($perfiles)) {
             $seccion = 'no_autenticado';
         } else {
             $seccion = implode(", ", $perfiles);
         }
         $archivo = toba::nucleo()->toba_instalacion_dir() . '/' . $parametros['conexiones_perfiles'];
         if (!file_exists($archivo) || is_dir($archivo)) {
             throw new toba_error_def("La base '{$id_base}' posee una referencia a un archivo de conexiones de perfiles inexistente: '{$archivo}'");
         }
         $usuarios = parse_ini_file($archivo, true);
         if (isset($usuarios[$seccion])) {
             if (!isset($usuarios[$seccion]['usuario'])) {
                 throw new toba_error_def("La definición '{$seccion}' del archivo '{$archivo}' no posee el valor 'usuario'");
             }
             if (!isset($usuarios[$seccion]['clave'])) {
                 throw new toba_error_def("La definición '{$seccion}' del archivo '{$archivo}' no posee el valor 'clave'");
             }
             return array($usuarios[$seccion]['usuario'], $usuarios[$seccion]['clave']);
         }
     }
     return array($usuario, $clave);
 }
Example #10
0
 /**
  * Ejecuta las tareas planificadas pendientes
  * @consola_parametros Opcional: [-v 0|1] Modo verbose
  */
 function opcion__ejecutar_tareas()
 {
     $param = $this->get_parametros();
     $manejador_interface = null;
     if (isset($param['-v']) && $param['-v']) {
         $manejador_interface = $this->consola;
     } else {
         $this->consola->set_verbose(false);
     }
     //Incluye el contexto consola
     require_once "nucleo/toba.php";
     toba::nucleo()->iniciar_contexto_desde_consola($this->get_id_instancia_actual(true), $this->get_id_proyecto_actual(true));
     //Ejecuta el planificador
     $planificador = new toba_planificador_tareas();
     $planificador->ejecutar_pendientes($manejador_interface);
 }
Example #11
0
 function get_datos_smtp($nombre_config = null)
 {
     if (!isset($this->memoria['smtp']) && is_null($nombre_config)) {
         throw new toba_error('Debe definir la entrada "smtp" el archivo instalacion/instalacion.ini');
     }
     $path_ini_smtp = toba::nucleo()->toba_instalacion_dir() . '/smtp.ini';
     if (!file_exists($path_ini_smtp)) {
         throw new toba_error("No existe el archivo '{$path_ini_smtp}'");
     }
     $ini = new toba_ini($path_ini_smtp);
     $conf = is_null($nombre_config) ? $this->memoria['smtp'] : $nombre_config;
     if (!$ini->existe_entrada($conf)) {
         throw new toba_error("No existe la entrada '{$conf}' el archivo '{$path_ini_smtp}'");
     }
     return $ini->get_datos_entrada($conf);
 }
Example #12
0
 /**
  * Devuelve el nombre del archivo pdf destino con la ruta absoluta
  * @return string 
  */
 function get_nombre_archivo_destino()
 {
     return toba_manejador_archivos::path_a_plataforma(toba::nucleo()->toba_dir() . '/temp/' . $this->nombre_archivo);
 }
Example #13
0
 static function get_path_instalacion_proyecto($proyecto)
 {
     $id_instancia = toba::instancia()->get_id();
     return toba::nucleo()->toba_instalacion_dir() . '/' . toba_modelo_instancia::dir_prefijo . $id_instancia . '/' . toba_modelo_instancia::prefijo_dir_proyecto . $proyecto;
 }
Example #14
0
 /**
  *	Entrada a un proyecto desde la operación de inicializacion de sesion
  */
 function iniciar_sesion_proyecto($datos_iniciales)
 {
     //Login anonimo de sesiones extendidas.
     if (!toba::proyecto()->get_parametro('requiere_validacion')) {
         $this->login_anonimo($datos_iniciales);
     }
     $this->procesar_acceso_proyecto($datos_iniciales);
     if (toba::nucleo()->solicitud_en_proceso()) {
         throw new toba_reset_nucleo('INICIAR SESION PROYECTO... recargando el nucleo.');
     }
 }
Example #15
0
 function get_info_pms($proyecto = null)
 {
     if (is_null($proyecto)) {
         $proyecto = $this->id;
     }
     if (toba::nucleo()->utilizar_metadatos_compilados($proyecto)) {
         $rs = $this->recuperar_datos_compilados('toba_mc_gene__pms', 'get_pms');
     } else {
         $rs = toba_proyecto_db::get_pms($proyecto);
     }
     if (empty($rs)) {
         throw new toba_error("No se pueden encontrar puntos de montaje en el proyecto '{$proyecto}'");
     }
     return $rs;
 }