private function __construct($proyecto) { if (!in_array($proyecto, toba::instancia()->get_id_proyectos())) { //El proyecto no existe o no esta cargado en la instancia if (!toba::instalacion()->es_produccion()) { throw new toba_error("El proyecto '" . $proyecto . "' no se encuentra cargado en la instancia"); } else { die; //En produccion no se loguea nada, se mata inmediatamente el proceso } } toba_proyecto_db::set_db(toba::instancia()->get_db()); //Las consultas salen de la instancia actual $this->id = $proyecto; $this->memoria =& toba::manejador_sesiones()->segmento_info_proyecto($proyecto); if (!$this->memoria) { $this->memoria = self::cargar_info_basica(); //toba::logger()->debug('Inicialización de TOBA_PROYECTO: ' . $this->id,'toba'); } $path_ini = self::get_path() . '/proyecto.ini'; if (file_exists($path_ini)) { $this->ini_proyecto = new toba_ini($path_ini); } $this->configurar_logger(); }
/** * Compilacion de GRUPOS de ACCESO */ function compilar_metadatos_generales_grupos_acceso($limpiar_existentes = false) { toba_proyecto_db::set_db($this->db); if ($limpiar_existentes) { $archivos = toba_manejador_archivos::get_archivos_directorio($this->get_dir_generales_compilados(), '/toba_mc_gene__grupo/'); foreach ($archivos as $archivo) { unlink($archivo); } } $this->manejador_interface->mensaje('Perfiles funcionales', false); foreach ($this->get_indice_grupos_acceso() as $grupo_acceso) { $nombre_clase = 'toba_mc_gene__grupo_' . $grupo_acceso; $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php'; $clase = new toba_clase_datos($nombre_clase); //-- Menu ------------------------------- $datos = toba_proyecto_db::get_items_menu($this->get_id(), array($grupo_acceso)); $temp = array(); foreach ($datos as $dato) { $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato; } $clase->agregar_metodo_datos('get_items_menu', $temp); //-- Control acceso --------------------- $datos = toba_proyecto_db::get_items_accesibles($this->get_id(), array($grupo_acceso)); $temp = array(); foreach ($datos as $dato) { $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato; } $clase->agregar_metodo_datos('get_items_accesibles', $temp); //-- Permisos --------------------------- $datos = toba_proyecto_db::get_lista_permisos($this->get_id(), array($grupo_acceso)); $temp = array(); foreach ($datos as $dato) { $temp[$dato['nombre'] . '-'] = $dato; //Se concatena un string porque asi el merge unifica si o si aunque el nombre sea un numero } $clase->agregar_metodo_datos('get_lista_permisos', $temp); //-- Acceso items zonas ----------------- foreach ($this->get_indice_zonas() as $zona) { $datos = toba_proyecto_db::get_items_zona($this->get_id(), array($grupo_acceso), $zona); $temp = array(); foreach ($datos as $dato) { $temp[$dato['item_proyecto'] . '-' . $dato['item']] = $dato; } $clase->agregar_metodo_datos('get_items_zona__' . $zona, $temp); } //-- Membresía ------------------- $miembros = toba_proyecto_db::get_perfiles_funcionales_asociados($this->get_id(), $grupo_acceso); $clase->agregar_metodo_datos('get_membresia', $miembros); //Guardo el archivo $clase->guardar($archivo); $this->manejador_interface->progreso_avanzar(); } //-- Agrego los items publicos en un archivo aparte, para que el usuario no autentificado pueda navegarlos $nombre_clase = 'toba_mc_gene__items_publicos'; $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php'; $clase = new toba_clase_datos($nombre_clase); $datos = toba_proyecto_db::get_items_accesibles($this->get_id(), array()); $temp = array(); foreach ($datos as $dato) { $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato; } $clase->agregar_metodo_datos('get_items_accesibles', $temp); $clase->guardar($archivo); $this->manejador_interface->progreso_avanzar(); $this->manejador_interface->progreso_fin(); }