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


Viewing file:     toba_aplicacion_comando_base.php (6.03 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

use SIU\AraiJsonMigrator\AraiMigratorManager;
use 
SIU\AraiJsonMigrator\AraiMigrator;
use 
ProgressBar\Manager;

class 
toba_aplicacion_comando_base implements toba_aplicacion_comando
{
    
/**
     * toba_aplicacion_modelo_base
     */
    
protected $modelo;
    
    
/**
     * @var toba_mock_proceso_gui
     */
    
protected $manejador_interface;
    
    function 
set_entorno($manejador_interfacetoba_aplicacion_modelo $modelo)
    {
        
$this->manejador_interface $manejador_interface;
        
$this->modelo $modelo;
    }
    
    
/**
     * Crea la base de negocios del proyecto
     */
    
function opcion__instalar($parametros)
    {        
        
$base $this->modelo->get_servidor_defecto();
        if (isset(
$parametros['--base-nombre'])) {
            
$base['base'] = $parametros['--base-nombre'];
        }
        
$this->modelo->instalar($base);
    }

    
/**
     * Migra una instalacion previa del proyecto
     */    
    
function opcion__migrar($parametros)
    {
        
$desde $this->modelo->get_version_actual();
        
$hasta $this->modelo->get_version_nueva();
        
$this->modelo->migrar($desde$hasta);
    }

    
/**
     * Crea o actualiza el esquema de auditoria sobre las tablas del negocio
     * @consola_parametros Opcional: [-f] fuente [-s] Lista de schemas incluidos separada por coma [--force 1] Fuerza eliminacion de todos los triggers
     */
    
function opcion__crear_auditoria($parametros)
    {        
        
$mantiene_datos =  $this->manejador_interface->dialogo_simple("¿Desea mantener los datos de auditoria actuales?"true);        
        
$mata_triggers = (isset($parametros['--force']) && ($parametros['--force'] == 1));
        
$fuente = (isset($parametros['-f'])) ? trim($parametros['-f']) : null;
        
$schemas = array();
        if (isset(
$parametros['-s'])) {
            if (! isset(
$parametros['-f'])) {
                throw new 
toba_error_usuario('Se debe especificar la fuente a la que pertenecen los esquemas con el parametro -f');
            } else {
                
                
$schemas explode(',' $parametros['-s']);
                
array_walk($schemas'trim');
            }
        }        
        
$this->modelo->crear_auditoria(array(),nulltrue$fuente$schemas$mantiene_datos$mata_triggers);
    }    
    
    
/**
     * Borra el esquema de auditoria
     */
    
function opcion__borrar_auditoria()
    {
        
$this->modelo->borrar_auditoria();
    }        
    
    
/**
     * Elimina datos de auditoria en un rango de tiempo 
     */
    
function opcion__purgar_auditoria()
    {
        
$tiempo $this->manejador_interface->dialogo_ingresar_texto('Ingrese el periodo de datos a mantener (meses)'false);
        
$this->modelo->purgar_auditoria($tiempo);
    }
    
    
/**
     * Hace compatible la estructura del esquema con los cambios en la version 2.4.0
      * @consola_separador 1
     */
    
function opcion__migrar_auditoria_2_4()
    {
        
$this->modelo->migrar_auditoria_2_4();                //Modifico la estructura de las tablas
        
$this->modelo->crear_auditoria();                    //Regenero los triggers y SPs
    
}

    
/**
     * Arma archivo JSON con las personas y cuentas para importar en arai-usuarios
     *
     * @param array $parametros
     *         array(
     *             '-d' => $this->get_instalacion()->get_dir() . '/usersExportFiles/',
     *            '-f' => 'usuarios_' . date('YmdHis'),
     *            '-m' => 'toba',
     *            '-e' => 'toba@siu.edu.ar'
     *         )
     * @throws Exception
     */
    
function opcion__exportar_usuarios_arai($parametros)
    {
        
$parametrosDefault = array(
            
'-d' => $this->modelo->get_instalacion()->get_dir() . '/usersExportFiles/',
            
'-f' => 'usuarios_' date('YmdHis'),
            
'-m' => 'toba',
            
'-e' => 'toba@siu.edu.ar',
        );
        
$parametros array_merge($parametrosDefault$parametros);

        
$this->manejador_interface->mensaje('Creando JSON de personas y cuentas:'false);
        
$this->manejador_interface->enter();

        
$pathMigration $parametros['-d'];
        if (! 
file_exists($pathMigration)) {
            if (
mkdir($pathMigration) === false) {
                throw new 
Exception("No se pudo crear la carpeta $pathMigration. ¿Problemas de permisos?");
            }
        }

        
// obtengo los usuarios para generar el JSON
        
$datosUsuarios $this->modelo->getDatosUsuarios();
        
$totalUsuarios count($datosUsuarios);

        
// Inicializo la barra de progreso
        
$progressBar = new Manager(0$totalUsuarios120);

        
/* @var AraiMigratorManager $araiMigratorManager */
        
$araiMigratorManager = new AraiMigratorManager();

        
/* @var AraiMigrator $araiMigratorUsuarios */
        
$araiMigratorUsuarios = new AraiMigrator('usersExport'utf8_e_seguro('Exportación de usuarios para SIU-Araí.'), $parametros['-m'], $parametros['-e']);

        
$cantidadPersonasAgregadas 0;
        
$cantidadCuentasAgregadas 0;

        
// recorro los usuarios
        
foreach($datosUsuarios as $datosUsuario) {
            
// codifico a UTF-8
            
$datosUsuario array_a_utf8($datosUsuario);

            
/* @var Person $person */
            
$person $this->modelo->generatePerson($datosUsuario);

            
// Genero la cuenta
            /* @var Account $account */
            
$account $this->modelo->generateAccountApp($datosUsuario$person);
            if (isset(
$account)) {
                
$araiMigratorUsuarios->addAccount($account);
                
$cantidadCuentasAgregadas++;
            } else {
                
// Agrego la persona
                
$araiMigratorUsuarios->addPerson($person);
                
$cantidadPersonasAgregadas++;
            }

            
$progressBar->advance();
        }

        
// Guardo la informacion en el archivo JSON
        
$path $pathMigration $parametros['-f'] . '.json';
        
$araiMigratorManager->save($path$araiMigratorUsuarios);

        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("--------------------------------------------------------------------"false);
        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("Resumen: ($path)"false);
        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("--------"false);
        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("Total de usuarios: $totalUsuarios"false);
        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("Cantidad de personas exportadas: $cantidadPersonasAgregadas"false);
        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("Cantidad de cuentas exportadas: $cantidadCuentasAgregadas"false);
        
$this->manejador_interface->enter();
        
$this->manejador_interface->enter();
        
$this->manejador_interface->mensaje("--------------------------------------------------------------------"false);
        
$this->manejador_interface->enter();
    }
}

?>

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