!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_tdfonline/php/modelo/migraciones/   drwxr-xr-x
Free 14.3 GB of 61.93 GB (23.09%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     toba_migracion_0_9_0.php (8.32 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

class toba_migracion_0_9_0 extends toba_migracion
{

    
/**
    *    Consulta al usuario el ID del grupo de desarrollo
    */
    
protected function definir_id_grupo_desarrollo()
    {
        
$this->manejador_interface->subtitulo('Definir el ID del grupo de desarrollo');
        
$this->manejador_interface->mensaje('Este codigo se utiliza para permitir el desarrollo paralelo de equipos '.
                                
'de trabajo geograficamente distribuidos.');
        
$this->manejador_interface->enter();
        
$resultado $this->manejador_interface->dialogo_ingresar_texto'ID Grupo'false );
        if ( 
$resultado == '' ) {
            return 
null;    
        } else {
            return 
$resultado;    
        }
    }
    
    
//------------------------------------------------------------------------
    //-------------------------- INSTALACION --------------------------
    //------------------------------------------------------------------------
    
    
    /**
     * La definición del archivo instancias.php se mueve hacia archivos y directorios
     * en el directorio instalacion dentro de $toba_dir
     */
    
function instalacion__construir_inis()
    {
        
// Estos defines se necesitan aca porque no se incluye el archivo de funciones planas db.php
        
define("apex_db_motor",0);
        
define("apex_db_profile",1);// host-dsn
        
define("apex_db_usuario",2);
        
define("apex_db_clave",3);
        
define("apex_db_base",4);
        
define("apex_db_con",5);
        
define("apex_db_link",6);
        
define("apex_db",7);
        
define("apex_db_link_id",8);
        
        if( ! 
is_filetoba_dir() . '/php/instancias.php' ) ) {
            throw new 
toba_error("No existe el archivo 'instancias.php'. No es posible realizar la conversion.");
        }        
        require_once(
'instancias.php');
    
        
//*** 0) Creo la carpeta INSTALACION
        
toba_modelo_instalacion::crear_directorio();
    
        
//*** 1) BASES
    
        
$bases_registradas = array();
        
$this->manejador_interface->mensaje"Migrar la definicion de BASES. (php/instancias.php)" );
        if( ! 
toba_modelo_instalacion::existe_info_bases() ) {
            foreach( 
$instancia as $i => $datos ) {
                
$base['motor']= $datos[apex_db_motor];
                
$base['profile'] = $datos[apex_db_profile];
                
$base['usuario'] = $datos[apex_db_usuario];
                
$base['clave'] = $datos[apex_db_clave];
                
$base['base'] = $datos[apex_db_base];
                
$bases_registradas[] = $i;
                
$bases[$i] = $base;
            }
            
toba_modelo_instalacion::crear_info_bases$bases );
            
$this->manejador_interface->mensaje("la definicion de BASES se encuentra ahora en '" 
                                                                    
toba_modelo_instalacion::archivo_info_bases() . "'");    
        } else {
            
$this->manejador_interface->mensaje"ya existe una archivo '" 
                                                                    
toba_modelo_instalacion::archivo_info_bases() . "'" );
        }
    
        
// *** 2) CLAVES
    
        
$this->manejador_interface->mensaje"Migrar la definicion de CLAVES. (php/instancias.php)" );
        if( ! 
toba_modelo_instalacion::existe_info_basica() ) {
            
$this->manejador_interface->enter();
            
$id_grupo_desarrollo self::definir_id_grupo_desarrollo();
            
toba_modelo_instalacion::crear_info_basicaapex_clave_getapex_clave_db$id_grupo_desarrollo );
        } else {
            
$this->manejador_interface->mensaje"ya existe una archivo '" toba_modelo_instalacion::archivo_info_basica() . "'" );
        }
    
        
// *** 3) INSTANCIAS
    
        
$this->manejador_interface->enter();
        
$this->manejador_interface->subtitulo"Migrar INSTANCIAS toba" );
        
$this->manejador_interface->mensaje"Indique que BASES son INSTANCIAS toba"); 

        
//Busco la lista de proyectos de la instalacion
        
$proyectos toba_modelo_proyecto::get_lista();
        if ( ! 
in_array'toba'$proyectos ) ) {
            
$proyectos[] = 'toba';
        }        
    
        
//Creo las instancias, preguntando en cada caso
        //Existe la opcion de conectarse a la base y preguntar si existe la tabla 'apex_objeto',
        //pero puede ser que por algun motivo la base no este online y sea una instancia
        
foreach( $instancia as $i => $datos ) {
            if( 
$datos[apex_db_motor] == 'postgres7' ) {
                
$this->manejador_interface->separador("BASE: $i");
                
$this->manejador_interface->lista($datos'Parametros CONEXION');
                
$this->manejador_interface->enter();
                if ( 
$this->manejador_interface->dialogo_simple("La base '$i' corresponde a una INSTANCIA TOBA?") ) {
                    if( 
toba_modelo_instancia::existe_carpeta_instancia$i ) ) {
                        
$this->manejador_interface->error("No es posible crearla instancia '$i'");
                        
$this->manejador_interface->mensaje("Ya exite una instancia: $i");     
                    } else {
                        
toba_modelo_instancia::crear_instancia$i$i$proyectos );
                    }
                }
            }
        }
        
$this->manejador_interface->mensaje("Ya es posible borrar el archivo 'toba_dir/php/instancias.php'");
        
$this->manejador_interface->separador("");
    }
    
    
//---------------------------------------------------------------
    //-------------------------- INSTANCIA --------------------------
    //---------------------------------------------------------------
    
    /**
     * El nuevo esquema de migración necesita que el proyecto tenga una versión toba asociada
     */
    
function instancia__agregado_version_proyecto()
    {
        
$sql = array();
        
$sql[] = "ALTER TABLE apex_proyecto ADD COLUMN toba_version varchar(15);";
        
//--- Se asume que los proyectos estan en la primer version de toba con este esquema
        
$sql[] = "UPDATE apex_proyecto SET toba_version='0.8.3' WHERE toba_version IS NULL";
        
$this->elemento->get_db()->ejecutar($sql);
    }

    function 
instancia__cambios_estructura()
    {
        
$sql = array();
        
$sql[] = "ALTER TABLE apex_proyecto ADD COLUMN salida_impr_html_c varchar(1);";
        
$sql[] = "ALTER TABLE apex_proyecto ADD COLUMN salida_impr_html_a varchar(1);";
        
$sql[] = "ALTER TABLE apex_proyecto ADD COLUMN version_toba varchar(10);";        
        
$sql[] = "ALTER TABLE apex_objeto_dependencias ADD COLUMN orden smallint;";
        
$sql[] = "ALTER TABLE apex_usuario ADD COLUMN autentificacion varchar(10);";
        
$sql[] = "ALTER TABLE apex_usuario ADD COLUMN clave2 varchar(128);";
        
$sql[] = "UPDATE apex_usuario SET clave2 = clave;";
        
$sql[] = "ALTER TABLE apex_usuario DROP COLUMN clave;";
        
$sql[] = "ALTER TABLE apex_usuario ADD COLUMN clave varchar(128);";
        
$sql[] = "UPDATE apex_usuario SET clave = clave2;";
        
$sql[] = "ALTER TABLE apex_usuario DROP COLUMN clave2;";
        
$sql[] = "INSERT INTO apex_solicitud_tipo (solicitud_tipo, descripcion, descripcion_corta, icono) VALUES ('web', 'Solicitud WEB', 'Solicitud WEB', 'solic_browser.gif');";
        
        
//Eventos
        
$sql[] = "ALTER TABLE apex_objeto_eventos ADD COLUMN accion varchar(1)";
        
$sql[] = "ALTER TABLE apex_objeto_eventos ADD COLUMN accion_imphtml_debug smallint";        
        
//Datos Relacion
        
$sql[] = "ALTER TABLE apex_objeto_datos_rel ADD COLUMN debug smallint;";
        
$sql[] = "ALTER TABLE apex_objeto_datos_rel ADD COLUMN sinc_susp_constraints smallint;";
        
$sql[] = "ALTER TABLE apex_objeto_datos_rel ADD COLUMN sinc_orden_automatico smallint;";
        
//Objeto_ei_esquema
        
$sql[] = "ALTER TABLE apex_objeto_esquema ADD COLUMN dirigido smallint;";
        
        
$this->elemento->get_db()->ejecutar($sql);
        
$this->elemento->get_db()->ejecutar_archivotoba_dir() . '/php/modelo/ddl/pgsql_a22_permisos.sql' );        
    }
    

    
/**
    *    Las claves pasan a encriptarse con md5 (los passwords planos siguen funcionando)
    */
    
function instancia__cambio_claves_encriptadas()
    {
        if ( 
$this->manejador_interface->dialogo_simple('¿Desea encriptar las passwords de usuarios con MD5? (los ABMs propios de edición de usuarios pueden llegar a no funcionar)') ) {
            
$sql "UPDATE apex_usuario SET clave=md5(clave), autentificacion='md5' 
                    WHERE autentificacion IS NULL OR autentificacion='plano'"
;
            
$this->elemento->get_db()->ejecutar($sql);
        }
    }
    
    
//--------------------------------------------------------------
    //-------------------------- PROYECTO --------------------------
    //--------------------------------------------------------------
    
    /**
     * Los items "modernos de toba" (>= 0.8) que utilizan un CI y ocpcionalmente un CN y que
     * utilizan alguno de los patrones predefinidos para manejarlos se migran a un nuevo
     * tipo de solicitud (solicitud_web en lugar de la obsoleta solicitud_browser), este cambio
     * se debe a que el nucelo de toba sufrio una reestructuracion muy grande recayendo
     * gran parte sobre la solicitud y no se quiere romper la compatilibilidad con los items viejos
     */
    
function proyecto__cambio_solicitud_web()
    {
        
$sql "UPDATE apex_item
                SET    solicitud_tipo='web'
                WHERE
                    proyecto='
{$this->elemento->get_id()}' AND 
                    solicitud_tipo='browser' AND
                    actividad_patron IN ('CI', 'CI_POPUP', 'ci', 'ci_cn_popup', 'generico_ci_cn')
        "
;
        
$this->elemento->get_db()->ejecutar($sql);
    }
}
?>

:: 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.6236 ]--