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


Viewing file:     toba_proyecto_db.php (17.53 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Recuperacion de informacion del proyecto de la base de datos
 * @package Centrales
 */
class toba_proyecto_db
{
    private static 
$db;
    
    static function 
set_db($db)
    {
        
self::$db $db;
    }
    
    static function 
get_db()
    {
        return 
self::$db;
    }

    static function 
cargar_info_basica($proyecto)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$sql "SELECT    p.proyecto as                nombre,
                        p.descripcion as        descripcion,
                        descripcion_corta                ,
                        p.estilo                            ,
                        est.proyecto as         estilo_proyecto,
                        con_frames                        ,
                        frames_clase                    ,
                        frames_archivo                    ,
                        salida_impr_html_c                ,
                        salida_impr_html_a                ,
                        m.menu as                menu,
                        m.archivo as            menu_archivo,
                        path_includes                    ,
                        path_browser                    ,
                        administrador                    ,
                        listar_multiproyecto            ,
                        orden                            ,
                        palabra_vinculo_std                ,
                        version_toba                    ,
                        requiere_validacion                ,
                        usuario_anonimo                    ,
                        usuario_anonimo_desc            ,
                        usuario_anonimo_grupos_acc        ,
                        validacion_intentos                ,
                        validacion_intentos_min            ,
                        validacion_bloquear_usuario        ,
                        validacion_debug                ,
                        sesion_tiempo_no_interac_min    ,
                        sesion_tiempo_maximo_min        ,
                        sesion_subclase                    ,
                        sesion_subclase_archivo            ,
                        contexto_ejecucion_subclase        ,
                        contexto_ejecucion_subclase_archivo    ,
                        usuario_subclase                ,
                        usuario_subclase_archivo        ,
                        encriptar_qs                    ,
                        registrar_solicitud                ,
                        registrar_cronometro            ,
                        item_inicio_sesion              ,
                        item_pre_sesion                      ,
                        item_pre_sesion_popup               ,
                        item_set_sesion                    ,
                        log_archivo                        ,
                        log_archivo_nivel                ,
                        fuente_datos                    ,
                        version                            ,
                        version_fecha                    ,
                        version_detalle                    ,
                        version_link                    ,
                        tiempo_espera_ms                ,
                        navegacion_ajax                    ,
                        codigo_ga_tracker                ,
                        extension_toba                    ,
                        extension_proyecto            ,
                        pm_impresion                  ,
                        pm_sesion                        ,
                        pm_contexto                        ,
                        est.es_css3
                FROM     apex_proyecto p 
                            LEFT OUTER JOIN apex_menu_tipos m ON (p.menu = m.menu)
                            LEFT OUTER JOIN apex_estilo est ON (p.estilo = est.estilo)
                WHERE    p.proyecto = 
$proyecto";
        return 
$db->consultar_fila($sql);
    }

    static function 
get_info_fuente_datos($proyecto$id_fuente)
    {
        
$db self::get_db();
        
$id_fuente $db->quote($id_fuente);
        
$proyecto $db->quote($proyecto);
        
$sql "SELECT     *,
                        link_instancia         as link_base_archivo,
                        fuente_datos_motor     as motor,
                        host                 as profile
                FROM     apex_fuente_datos
                WHERE    fuente_datos = 
$id_fuente
                AND     proyecto = 
$proyecto";
        return 
$db->consultar_fila($sql);
    }
    
    static function 
get_info_fuente_schemas($proyecto$id_fuente)
    {
        
$db self::get_db();
        
$id_fuente $db->quote($id_fuente);
        
$proyecto $db->quote($proyecto);
        
$sql "SELECT     *
                FROM     apex_fuente_datos_schemas        
                WHERE    fuente_datos = 
$id_fuente
                AND     proyecto = 
$proyecto";
        return 
$db->consultar($sql);
    }        

    static function 
get_mapeo_tabla_dt($proyecto$id_fuente)
    {
        
$db self::get_db();
        
$id_fuente $db->quote($id_fuente);
        
$proyecto $db->quote($proyecto);        
        
$sql "
            SELECT 
                dt.objeto,
                dt.tabla
            FROM 
                apex_objeto_db_registros as dt,
                apex_objeto as comp
            WHERE
                    dt.objeto_proyecto = 
$proyecto
                AND dt.objeto = comp.objeto
                AND dt.objeto_proyecto = comp.proyecto
                AND comp.fuente_datos = 
$id_fuente
                ORDER BY dt.objeto"
;
        
$rs $db->consultar($sql);
        return 
rs_convertir_asociativo($rs, array('tabla'), 'objeto');
    }

    static function 
get_mapeo_componentes_indice($proyecto)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);        
        
$sql "
            SELECT
                    identificador,
                    objeto,
                    clase
            FROM 
                apex_objeto
            WHERE
                proyecto = 
$proyecto
                AND (identificador IS NOT NULL OR trim(identificador) = '');
        "
;
        
$rs $db->consultar($sql);
        
$temp = array();
        foreach(
$rs as $c) {
            
$temp[$c['identificador']] = array('clase'=>$c['clase'],'componente'=>$c['objeto']);
        }
        return 
$temp;
    }

    static function 
get_descripcion_permiso($proyecto$permiso)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$permiso $db->quote($permiso);            
        
$sql "    SELECT
                        per.descripcion,
                        per.mensaje_particular
                    FROM
                        apex_permiso per
                    WHERE
                        per.proyecto = 
$proyecto
                    AND    per.nombre = 
$permiso
        "
;
        return 
$db->consultar_fila($sql);
    }

    
//---------------------  Puntos de control  -------------------------

    
static function punto_control_parametros($proyecto$pto_control)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$pto_control $db->quote($pto_control);        
        return 
$db->consultar(
              
"SELECT parametro
                 FROM apex_ptos_control_param 
                WHERE proyecto    = 
$proyecto
                  AND pto_control = 
$pto_control
                  ORDER BY parametro;
            "
); 
    }

    static function 
punto_control_controles($proyecto$pto_control)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$pto_control $db->quote($pto_control);        
        return 
$db->consultar(
          
"SELECT archivo,
                  clase,
                  actua_como
             FROM apex_ptos_control_ctrl 
            WHERE proyecto    = 
$proyecto
              AND pto_control = 
$pto_control
              ORDER BY archivo, clase;
        "
);
    }

    
//---------------------  Grupos de Acceso  -------------------------

    /**
     * Retorna las membresía del perfil
     */
    
static function get_perfiles_funcionales_asociados($proyecto$perfil)
    {
        
$db self::get_db();        
        
$proyecto_quote $db->quote($proyecto);
        
$perfil_quote $db->quote($perfil);
        
$sql "SELECT 
                    gam.usuario_grupo_acc_pertenece,
                    (SELECT COUNT(*) FROM apex_usuario_grupo_acc_miembros mie WHERE mie.usuario_grupo_acc = gam.usuario_grupo_acc_pertenece) as cant_membresias
                FROM 
                    apex_usuario_grupo_acc_miembros gam
                WHERE 
                        gam.proyecto = 
$proyecto_quote
                    AND    gam.usuario_grupo_acc = 
$perfil_quote
                ORDER BY gam.usuario_grupo_acc_pertenece
        "
;
        
$salida = array();
        
$datos =  $db->consultar($sql);        
        foreach (
$datos as $fila) {
            
$salida[] = $fila['usuario_grupo_acc_pertenece'];            
            if (
$fila['cant_membresias'] > 0) {
                
$salida array_merge($salidaself::get_perfiles_funcionales_asociados($proyecto$fila['usuario_grupo_acc_pertenece']));
            }
        }
        return 
array_unique($salida);
    }    
    
    static function 
get_items_menu($proyecto$grupos_acceso)
    {
        
$db self::get_db();
        
$raiz $db->quote(self::get_item_raiz($proyecto));    
        if (empty(
$grupos_acceso)) {
            
//Caso que el usuario no posea grupo de acceso (no_autenticado)
            
$sql_grupo_acceso "";
        } else {
            
$grupos_acceso implode(","$db->quote($grupos_acceso));
            
$sql_grupo_acceso "auga.usuario_grupo_acc IN ($grupos_acceso) OR";
        }
        
$proyecto $db->quote($proyecto);
        
$sql "(
                SELECT     amo.padre,
                            amo.carpeta,
                            amo.proyecto,
                            amo.item,
                            amo.descripcion as nombre,
                            ai.orden as         orden,
                            ai.imagen,
                            ai.imagen_recurso_origen,
                            amo.padre = 
$raiz as es_primer_nivel
                   FROM 
                            apex_usuario_grupo_acc auga
                        JOIN apex_menu_operaciones amo ON (auga.menu_usuario = amo.menu_id AND auga.proyecto = amo.proyecto)
                        JOIN apex_usuario_grupo_acc_item augai ON (auga.proyecto = augai.proyecto AND auga.usuario_grupo_acc = augai.usuario_grupo_acc AND augai.item = amo.item)
                        JOIN apex_item ai ON (augai.item = ai.item AND augai.proyecto = ai.proyecto)    
                  WHERE (ai.menu = 1)
                    AND ai.item != ai.padre
                    AND    (
$sql_grupo_acceso ai.publico = 1)
                    AND    (amo.proyecto = 
$proyecto)
                    AND auga.menu_usuario IS NOT NULL
            UNION
                SELECT     ai.padre,
                        ai.carpeta,
                        ai.proyecto,
                        ai.item,
                        ai.nombre as nombre,
                        ai.orden as         orden,
                        ai.imagen,
                        ai.imagen_recurso_origen,
                        ai.padre = 
$raiz as es_primer_nivel
                FROM 
                        apex_usuario_grupo_acc auga
                    JOIN apex_usuario_grupo_acc_item augai ON (auga.proyecto = augai.proyecto AND auga.usuario_grupo_acc = augai.usuario_grupo_acc)
                    JOIN apex_item ai ON (augai.item = ai.item AND augai.proyecto = ai.proyecto)    
                WHERE auga.menu_usuario is null
                    AND (ai.menu = 1)
                    AND ai.item != ai.padre
                    AND    (
$sql_grupo_acceso ai.publico = 1)
                    AND    (ai.proyecto = 
$proyecto)
            ) ORDER BY 1, 6"
;
        
        
toba::logger()->debug($sql);
        return 
$db->consultar($sql);
    }    

    static function 
get_item_raiz($proyecto)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);        
        
$sql "
            SELECT 
                item
            FROM apex_item 
            WHERE 
                    proyecto = 
$proyecto
                AND item = padre
        "
;
        
$datos $db->consultar_fila($sql);
        return 
$datos['item'];
    }    
    
    static function 
get_items_accesibles($proyecto$grupos_acceso)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        if (empty(
$grupos_acceso)) {
            
//Caso que el usuario no posea grupo de acceso (no_autenticado)
            
$sql_grupo_acceso "";
        } else {
            
$grupos_acceso implode(","$db->quote($grupos_acceso));
            
$sql_grupo_acceso "ui.usuario_grupo_acc IN ($grupos_acceso) OR";
        }
        
$sql "SELECT DISTINCT
                        i.proyecto as proyecto,
                        i.item as item
                FROM    apex_item i 
                                LEFT OUTER JOIN apex_usuario_grupo_acc_item ui ON 
                                    (i.item = ui.item AND i.proyecto = ui.proyecto)
                WHERE    (i.carpeta <> 1 OR i.carpeta IS NULL)
                AND        i.proyecto = 
$proyecto
                AND        (
$sql_grupo_acceso i.publico = 1)
                ORDER BY i.item "
;
        return 
$db->consultar($sql);
    }

    
/**
    *    Devuelve la lista de items de la zona a los que puede acceder el grupo actual
    */
    
static function get_items_zona($proyecto$grupos_acceso$zona)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        if (empty(
$grupos_acceso)) {
            
//Caso que el usuario no posea grupo de acceso (no_autenticado)
            
$sql_grupo_acceso "";
        } else {
            
$grupos_acceso implode(","$db->quote($grupos_acceso));
            
$sql_grupo_acceso "ui.usuario_grupo_acc IN ($grupos_acceso) OR";
        }
        
$zona $db->quote($zona);
        
$sql "SELECT    DISTINCT
                        i.proyecto as                     item_proyecto,
                        i.item as                        item,
                        i.zona_orden as                    orden,
                        i.imagen as                        imagen,
                        i.imagen_recurso_origen as        imagen_origen,
                        i.nombre as                        nombre,
                        i.descripcion as                descripcion
                FROM    apex_item i,
                        apex_usuario_grupo_acc_item ui
                WHERE    i.zona = 
$zona
                AND        i.zona_proyecto = 
$proyecto
                AND     ui.item = i.item
                AND        ui.proyecto = i.proyecto
                AND        (
$sql_grupo_acceso i.publico = 1)
                AND        i.zona_listar = 1
                ORDER BY 3;"
;
        return 
$db->consultar($sql);    
    }

    static function 
get_lista_permisos($proyecto$grupos_acceso)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);        
        
$grupos_acceso implode(","$db->quote($grupos_acceso));        
        
$sql 
            SELECT DISTINCT
                per.nombre as nombre
            FROM
                apex_permiso_grupo_acc per_grupo,
                apex_permiso per
            WHERE
                per_grupo.proyecto = 
$proyecto
            AND    per_grupo.usuario_grupo_acc IN (
$grupos_acceso)
            AND    per_grupo.permiso = per.permiso
            AND    per_grupo.proyecto = per.proyecto
            ORDER BY per.nombre"
;
        return 
self::get_db()->consultar($sql);
    }

    
//------------------------ CONSULTAS PHP -----------------------

    
static function get_consulta_php($proyecto$clase)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$clase $db->quote($clase);
        
$sql "SELECT        clase,
                            archivo,
                            archivo_clase,
                            punto_montaje
                    FROM    apex_consulta_php
                    WHERE    proyecto = 
$proyecto AND clase = $clase ";
        return 
self::get_db()->consultar_fila($sql);    
    }

    
//------------------------  DIMENSIONES -----------------------

    
static function get_info_dimension($proyecto$dimension)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$dimension $db->quote($dimension);    
        
$datos_dim = array();
        
$sql "     SELECT    proyecto,
                            dimension,                    
                            nombre,                        
                            descripcion,                    
                            schema,                        
                            tabla,                        
                            col_id,                        
                            col_desc,                    
                            col_desc_separador,            
                            multitabla_col_tabla,        
                            multitabla_id_tabla,            
                            fuente_datos_proyecto,            
                            fuente_datos                    
                    FROM apex_dimension
                    WHERE proyecto = 
$proyecto
                    AND    dimension = 
$dimension";
        
$datos_dim self::get_db()->consultar_fila($sql);
        if(
$datos_dim) {
            
$sql "     SELECT    proyecto,                    
                                dimension,                    
                                gatillo,                        
                                tipo,                        
                                orden,                        
                                tabla_rel_dim,                
                                columnas_rel_dim,            
                                tabla_gatillo,                
                                ruta_tabla_rel_dim            
                        FROM apex_dimension_gatillo
                        WHERE proyecto = 
$proyecto
                        AND    dimension = 
$dimension
                        ORDER BY tipo, orden"
;
            
$datos_dim['gatillos'] = $db->consultar($sql);
        }
        return 
$datos_dim;
    }

    static function 
get_info_relacion_entre_tablas($proyecto$fuente_datos)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$fuente_datos $db->quote($fuente_datos);    
        
$sql "     SELECT    proyecto,
                            fuente_datos_proyecto,
                            fuente_datos,                    
                            relacion_tablas,                    
                            tabla_1,                            
                            tabla_1_cols,                    
                            tabla_2,                            
                            tabla_2_cols                    
                    FROM    apex_relacion_tablas
                    WHERE proyecto = 
$proyecto
                    AND fuente_datos = 
$fuente_datos";
        
$datos self::get_db()->consultar($sql);
        
$temp = array();
        
//Armo una estructura indizada de las relaciones.
        
foreach($datos as $relacion) {
            
$cols_tabla_1 explode(',',$relacion['tabla_1_cols']);
            
$cols_tabla_1 array_map('trim'$cols_tabla_1);
            
$cols_tabla_2 explode(',',$relacion['tabla_2_cols']);
            
$cols_tabla_2 array_map('trim'$cols_tabla_2);
            
$temp[$relacion['tabla_1']][$relacion['tabla_2']]['cols_1'] = $cols_tabla_1;
            
$temp[$relacion['tabla_1']][$relacion['tabla_2']]['cols_2'] = $cols_tabla_2;
        }
        return 
$temp;
    }

    
//------------------------  SERVICIOS WEB -----------------------

    
static function get_info_servicio_web($proyecto$servicio)
    {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$servicio $db->quote($servicio);

        
$sql "     SELECT    
                        proyecto,
                        servicio_web,
                        descripcion,
                        tipo,
                        param_to,
                        param_wsa                    
                    FROM apex_servicio_web
                    WHERE proyecto = 
$proyecto
                    AND    servicio_web = 
$servicio";
        
$datos $db->consultar_fila($sql);
        if (empty(
$datos)) {
            return 
$datos;
        }
        
$datos['parametros'] = array('to' => $datos['param_to']);
        if (isset(
$datos['param_wsa'])) {
            
$datos['parametros']['useWSA'] = $datos['param_wsa'];
        }
        
        
        
//Parametros
        
$sql "     SELECT    parametro,                    
                            valor                    
                    FROM apex_servicio_web_param
                    WHERE proyecto = 
$proyecto
                    AND    servicio_web = 
$servicio
                    ORDER BY parametro"
;
        foreach (
$db->consultar($sql) as $fila) {
            
$datos['parametros'][$fila['parametro']] = $fila['valor'];
        }
        return 
$datos;
    }
    
    
    
//------------------------  MENSAJES  -------------------------
    
    
static function get_mensaje_toba($indice)
    {
        
$db self::get_db();
        
$indice $db->quote($indice);
        
$sql "SELECT
                    COALESCE(mensaje_customizable, mensaje_a) as m
                FROM apex_msg 
                WHERE indice = 
$indice
                AND proyecto = 'toba'
                ORDER BY msg;"
;
        return 
$db->consultar_fila($sqltoba_db_fetch_asocfalse);    
    }
    
    static function 
get_mensaje_proyecto($proyecto$indice)
    {
        
$db self::get_db();
        
$indice $db->quote($indice);
        
$proyecto $db->quote($proyecto);    
        
$sql "SELECT
                    COALESCE(mensaje_customizable, mensaje_a) as m
                FROM apex_msg 
                WHERE indice = 
$indice
                AND proyecto = 
$proyecto
        "
;
        return 
$db->consultar_fila($sqltoba_db_fetch_asocfalse);    
    }

    static function 
get_mensaje_objeto($proyecto$objeto$indice)
    {
        
$db self::get_db();
        
$indice $db->quote($indice);
        
$proyecto $db->quote($proyecto);
        
$objeto $db->quote($objeto);        
        
$sql "SELECT
                    COALESCE(mensaje_customizable, mensaje_a) as m
                FROM apex_objeto_msg 
                WHERE indice = 
$indice
                AND objeto_proyecto = 
$proyecto
                AND objeto = 
$objeto
        "
;
        return 
self::get_db()->consultar_fila($sql);    
    }

    
//------------------------  PUNTOS DE MONTAJE  -------------------------
    /**
     * Retorna el listado completo de los puntos de montaje de un proyecto
     */
    
static function get_pms($proyecto)
    {
        
$proyecto self::get_db()->quote($proyecto);
        
$sql "SELECT * FROM apex_puntos_montaje WHERE proyecto=$proyecto";
        return 
self::get_db()->consultar($sql);
    }

    
    
//------------------------  GADGETS  -------------------------    
    
static function get_gadgets_proyecto($proyecto$usuario) {
        
$db self::get_db();
        
$proyecto $db->quote($proyecto);
        
$usuario $db->quote($usuario);
        
$sql "SELECT        g.gadget,
                                            g.gadget_url,
                                            g.titulo,
                                            g.descripcion,
                                            u.orden,
                                            g.proyecto,
                                            coalesce(u.eliminable, 'S'::varchar) as eliminable,
                                            g.tipo_gadget,
                                            g.subclase,
                                            g.subclase_archivo
                    FROM
                        apex_usuario_proyecto_gadgets u
                    INNER JOIN
                        apex_gadgets g ON g.gadget = u.gadget
                    WHERE
                        u.usuario = 
$usuario
                    AND u.proyecto = 
$proyecto
                    ORDER BY orden;  "
;

        return 
$db->consultar($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.6982 ]--