!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_led/proyectos/toba_editor/php/configuracion/   drwxrwxr-x
Free 14.57 GB of 61.93 GB (23.52%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ci_fuentes.php (9.94 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
class ci_fuentes extends toba_ci
{
    protected 
$s__carga_ok;
    protected 
$s__nombre_fuente;
    protected 
$lista_esquemas;
    protected 
$s__datos_bases_ini = array();

    function 
ini()
    {
        if (
$editable toba::zona()->get_editable()) {
            
$clave['proyecto'] = toba_editor::get_proyecto_cargado();
            
$clave['fuente_datos'] = $editable[1];                        
            if (! 
$this->dependencia('datos')->esta_cargada()) {
                
$this->s__carga_ok $this->dependencia('datos')->cargar($clave);                                
            }
        }            
    }

    function 
conf()
    {
        if (!
$this->s__carga_ok) {
            
$this->pantalla()->eliminar_evento('eliminar');
        }
    }

    function 
get_lista_bases()
    {
        
$bases toba_dba::get_bases_definidas();
        
$datos = array();
        
$orden 0;
        foreach (
$bases as $base => $descripcion) {
            
$datos[$orden]['id'] = $base;
            
$datos[$orden]['nombre'] = $base .' --- '$descripcion['base'] .'@'$descripcion['profile'];
            
$orden++;
        }
        return 
$datos;
    }
    
    function 
get_lista_schemas()
    {
        if (! isset(
$this->lista_esquemas)) {
            
$db toba_editor::db_proyecto_cargado($this->s__nombre_fuente);
            
$this->lista_esquemas $db->get_lista_schemas_disponibles();
        }
        return 
$this->lista_esquemas;
    }
    
    function 
es_motor_postgres()
    {
        if (isset(
$this->s__datos_bases_ini['motor'])) {
            return (
trim($this->s__datos_bases_ini['motor']) == 'postgres7');
        }
        return 
false;
    }

    
//---- Eventos CI -------------------------------------------------------

    
function evt__guardar()
    {
        
//Primero grabo el archivo bases.ini    
        
if (isset($this->s__datos_bases_ini['motor']) && trim($this->s__datos_bases_ini['motor']) != '') {
            
$instancia toba_editor::get_id_instancia_activa();
            
$id_base "$instancia {$this->s__datos_bases_ini['proyecto']} {$this->s__datos_bases_ini['fuente_datos']}";
            
$this->persistir_archivo_conf($id_base$this->s__datos_bases_ini);        
        }
        
        
$schemas_config $this->dependencia('datos')->tabla('esquemas')->get_cantidad_filas();
        if (
$this->es_motor_postgres() && $schemas_config == && trim($this->s__datos_bases_ini['usuario']) != '') {
            
toba::notificacion()->agregar('No olvide agregar los schemas utilizados por la fuente''info');
        }        
        
        
//Ahora grabo los datos en la instancia
        
$this->dependencia('datos')->sincronizar();
        
        
//Aca tendria que agregar los schemas a la bd.
        
$clave $this->dependencia('datos')->tabla('fuente')->get_clave_valor(0);
        
$zona toba::solicitud()->zona();
        if (! 
$zona->cargada()) {
            
$zona->cargar(array_values($clave));
        }
        
$this->s__carga_ok true;
        
admin_util::refrescar_barra_lateral();
    }

    function 
evt__eliminar()
    {
        
$this->dependencia('datos')->eliminar_todo();
        
toba::solicitud()->zona()->resetear();
        
$this->s__carga_ok false;
        
admin_util::refrescar_barra_lateral();
    }
    
    
//-------------------------------------------------------------------
    //--- DEPENDENCIAS
    //-------------------------------------------------------------------

    
function evt__form__modificacion($datos)
    {
        
$datos['proyecto'] = toba_editor::get_proyecto_cargado();
        
$datos_orig $datos;

        
//--- Actualiza bases.ini
        
$tmp_datos array_merge($this->s__datos_bases_ini$datos);
        
$this->s__datos_bases_ini $tmp_datos;
        
        
// Se eliminan columnas del 
        
unset($datos_orig['usuario']);
        unset(
$datos_orig['clave']);
        unset(
$datos_orig['base']);
        unset(
$datos_orig['puerto']);
        unset(
$datos_orig['conexiones_perfiles']);
        unset(
$datos_orig['motor']);
        unset(
$datos_orig['profile']);
        
$this->dependencia('datos')->tabla('fuente')->set($datos_orig);        
        
$this->s__nombre_fuente $datos_orig['fuente_datos'];
    }

    function 
conf__form($form)
    {
        
$datos = array();
        if (
$this->s__carga_ok) {
            
$datos $this->dependencia('datos')->tabla('fuente')->get();
            
$instancia toba_editor::get_id_instancia_activa();
            
$id_base "$instancia {$datos['proyecto']} {$datos['fuente_datos']}";    
            if (! isset(
$this->s__datos_bases_ini) || empty($this->s__datos_bases_ini)) {
                
$this->s__datos_bases_ini $this->cargar_archivo_ini($id_base);            
            }    
        }
        
        
$form->ef('subclase_archivo')->set_iconos_utilerias(admin_util::get_ef_popup_utileria_php());
        if (isset(
$datos['fuente_datos'])) {
            
$datos array_merge($datos$this->s__datos_bases_ini);
            
$datos['entrada'] = "<strong>[$id_base]</strong>";
        } else {
            
$form->desactivar_efs(array('separador''entrada''motor''profile',    'usuario''clave''base''puerto'));
        }
        
        
$form->set_datos($datos);        
        
        
//Controlo que tabs mostrar en base a los datos del form        
        
if (! isset($datos['base']) || trim($datos['base']) == '' ) {            
            
$this->pantalla()->eliminar_tab(2);
            
$this->pantalla()->eliminar_tab(3);            
        }

    }

    
//-----------------------------------------------------------------------------------
    //---- form_auditoria ---------------------------------------------------------------
    //-----------------------------------------------------------------------------------

    
function conf__form_auditoria(toba_ei_formulario $form)
    {
        
$datos $this->dependencia('datos')->tabla('fuente')->get();
        
$form->set_datos($datos);
    }

    function 
evt__form_auditoria__modificacion($datos)
    {
        if (isset(
$datos['tiene_auditoria'])) {
            
$this->dependencia('datos')->tabla('fuente')->set_columna_valor('tiene_auditoria'$datos['tiene_auditoria']);
        }
    }    
    
    function 
evt__form_auditoria__crear_auditoria()
    {
        
$instalacion toba_modelo_catalogo::instanciacion()->get_instalacion();
        
$instancia toba_editor::get_id_instancia_activa();
        
$proyecto_cargado toba_editor::get_proyecto_cargado();

        
$id_base "$instancia $proyecto_cargado {$this->s__nombre_fuente}";
        if (!
$instalacion->existe_base_datos_definida($id_base)) {
            throw new 
toba_error('Debe definir los parámetros de conexión');
        }
        
$parametros $instalacion->get_parametros_base($id_base);
        if (! isset(
$parametros['schema'])) {
            
$schema 'public';
        } else {
            
$schema $parametros['schema'];
        }
        
$schema_auditoria $schema'_auditoria';        
        
        
//Creo el objeto para asignar los roles correctos a las tablas de auditoria
        
$modelo_proyecto toba_modelo_catalogo::instanciacion()->get_proyecto($instancia$proyecto_cargado);
        
$db toba_editor::db_proyecto_cargado($this->s__nombre_fuente);//,  $proyecto_cargado);
        
try {
            
$auditoria $db->get_manejador_auditoria($schema$schema_auditoria);
            if (
is_null($auditoria)) {
                throw 
toba_error_db('No existe manejador de auditoria para este motor de bd');
            }
            
$auditoria->set_triggers_eliminacion_forzada(true);
            
$auditoria->agregar_tablas();    ///Agrego todas las tablas

            
if (! $auditoria->existe()) {
                
$auditoria->crear();
            } else {
                
$auditoria->migrar();
            }
            
$modelo_proyecto->generar_roles_db();
        } catch(
toba_error $e) {
            throw 
$e;
        }
        
toba::notificacion()->agregar('Esquema creado satisfactoriamente''info');
        
$this->dependencia('datos')->tabla('fuente')->set_columna_valor('tiene_auditoria''1');
        return 
true;
    }


    
//-----------------------------------------------------------------------------------
    //---- form_schemas -----------------------------------------------------------------
    //-----------------------------------------------------------------------------------

    
function conf__form_schemas(eiform_fuente_datos_esquemas $form)
    {
        
$manejados = array();
        
        
//El encoding lo sacamos del bases ini
        
$datos_base $this->s__datos_bases_ini;
        
$encoding = (isset($datos_base['encoding'])) ? $datos_base['encoding'] : '';
        
        
$datos_basicos $this->dependencia('datos')->tabla('fuente')->get();
        
$datos_schemas $this->dependencia('datos')->tabla('esquemas')->get_filas(nullfalsefalse);
        foreach (
$datos_schemas as $schema) {
            
$manejados[] = $schema['nombre'];
        }        
        
$datos_form = array('schema' => $datos_basicos['schema'], 'encoding' => $encoding'esquemas_manejados' => $manejados);
        
$form->set_datos($datos_form);
        if (! 
$this->es_motor_postgres()) {
            
$form->desactivar_efs(array('esquemas_manejados''schema'));
        }
    }

    function 
evt__form_schemas__modificacion($datos)
    {
        
//Grabo la informacion en la base
        
if (isset($datos['schema'])) {
            
$this->dependencia('datos')->tabla('fuente')->set_columna_valor('schema'$datos['schema']);
        }
    
        if (isset(
$datos['esquemas_manejados'])) {
            
$esquemas_seleccionados $datos['esquemas_manejados'];
            if (
count($esquemas_seleccionados) > 0) {
                
$this->dependencia('datos')->tabla('esquemas')->eliminar_filas();
                foreach (
$esquemas_seleccionados as $esquema) {
                    
$this->dependencia('datos')->tabla('esquemas')->nueva_fila(array('nombre' => $esquema'principal' => 0));
                }            
            }
        }
        
        
//Agrego o modifico la informacion en bases ini
        
if (isset($datos['encoding']) || isset($datos['schema'])) {
            
$this->s__datos_bases_ini array_merge($this->s__datos_bases_ini$datos);
            
$instancia toba_editor::get_id_instancia_activa();
            
$proyecto_cargado toba_editor::get_proyecto_cargado();
            
$id_base "$instancia $proyecto_cargado {$this->s__nombre_fuente}";
        }
    }
    
    
//----------------------------------------------------------------------------------------------------------
    //                METODOS AUXILIARES
    //----------------------------------------------------------------------------------------------------------
    
function persistir_archivo_conf($id_base$datos)
    {
        
$instalacion toba_modelo_catalogo::instanciacion()->get_instalacion(null);
        
$bases $instalacion->get_lista_bases();
        
$datos array_dejar_llaves($datos, array('motor''profile''usuario''clave''base''puerto''schema''encoding''conexiones_perfiles')); 
        if (isset(
$datos['conexiones_perfiles']) || is_null($datos['conexiones_perfiles'])) {
            unset(
$datos['conexiones_perfiles']);
        }
        if (
in_array($id_base$bases)) {
            
//---Actualiza la entrada actual
            
$instalacion->actualizar_db($id_base$datos);
        } else {
            
//---Crea una nueva entrada    
            
$instalacion->agregar_db($id_base$datos);
        }        
    }
        
    function 
cargar_archivo_ini($id_base)
    {
        
$instalacion toba_modelo_catalogo::instanciacion()->get_instalacion(null);
        if (
$instalacion->existe_base_datos_definida($id_base)) {
            return 
$instalacion->get_parametros_base($id_base);
        }
        return array();
    }    
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.6097 ]--