/**
  * Retorna los ids de las restricciones funcionales que aplican a un conjunto de grupos de acceso
  */
 static function get_restricciones_funcionales($grupos, $proyecto)
 {
     if (empty($grupos)) {
         return array();
     }
     $db = toba::instancia()->get_db();
     $proyecto = $db->quote($proyecto);
     $grupos = $db->quote($grupos);
     $sql_grupos = implode(", ", $grupos);
     $sql = "SELECT \trf.restriccion_funcional\n\t\t\tFROM \n\t\t\t\tapex_grupo_acc_restriccion_funcional rf\n\t\t\tWHERE\n\t\t\t\t\trf.usuario_grupo_acc IN({$sql_grupos})\n\t\t\t\tAND\tproyecto = {$proyecto}\n\t\t";
     $datos = $db->consultar($sql);
     return aplanar_matriz($datos, 'restriccion_funcional');
 }
 function evt__procesar()
 {
     if (!empty($this->s__seleccionadas) && !is_array(current($this->s__seleccionadas))) {
         $this->s__seleccionadas = array($this->s__seleccionadas);
         //Por si viene con el formato viejo
     }
     $procesables = array();
     if (!empty($this->s__seleccionadas)) {
         $procesables = aplanar_matriz($this->s__seleccionadas, 'tabla');
     }
     $this->s__catalogo->desactivar_no_procesadas($procesables);
     foreach ($procesables as $tabla) {
         $this->s__catalogo->confirmar_acciones($tabla);
     }
     $this->s__catalogo->resetear();
     $this->s__catalogo->cargar();
     $this->dep('cuadro')->deseleccionar();
 }
Example #3
0
 /**
  *	Lista de tablas que pueden usarse como gatillos
  *		No puede utilizarse dos veces la misma tabla como gatillo, por eso las utilizadas se excluyen
  */
 function get_tablas_gatillos()
 {
     $temp = $this->dependencia('datos')->tabla('dimension')->get();
     $datos = toba_info_editores::get_schemas_fuente(toba_editor::get_proyecto_cargado(), $temp['fuente_datos']);
     $schemas = !empty($datos) ? aplanar_matriz($datos, 'schema') : null;
     $tablas = toba::db($temp['fuente_datos'], toba_editor::get_proyecto_cargado())->get_lista_tablas(true, $schemas);
     return $tablas;
 }
Example #4
0
 function get_sp_schema($schema)
 {
     $sql = "SELECT\n\t\t\t\t\t\t\t\t\t\t\tproname\n\t\t\t\t\t\t FROM pg_proc p\n\t\t\t\t\t\t\tJOIN pg_namespace ns ON (p.pronamespace = ns.oid)\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tnspname =  " . $this->quote($schema);
     $stored_proc = $this->consultar($sql);
     return aplanar_matriz($stored_proc, 'proname');
     //Devuelvo la matriz sin el subindice de nombre de columna
 }
 function purgar_auditoria($tiempo = 0, $tablas = array(), $prefijo_tablas = null, $con_transaccion = true)
 {
     $this->manejador_interface->mensaje('Limpiando las tablas de auditoria', true);
     $fuentes = $this->proyecto->get_indice_fuentes();
     toba_logger::instancia()->var_dump($fuentes, 'fuentes activas');
     if (empty($fuentes)) {
         return;
     }
     $schemas = array();
     foreach ($fuentes as $fuente) {
         $schemas[$fuente] = aplanar_matriz(toba_info_editores::get_schemas_fuente($this->proyecto->get_id(), $fuente), 'schema');
     }
     toba_logger::instancia()->var_dump($schemas, 'schemas de fuentes');
     foreach ($fuentes as $fuente) {
         try {
             $base = $this->proyecto->get_db_negocio($fuente);
             $this->procesar_schemas_fuente($base, $schemas[$fuente], $con_transaccion, $tablas, $prefijo_tablas, 'purgar', $tiempo);
             unset($base);
         } catch (toba_error_db $e) {
             if (isset($base)) {
                 $base->abortar_transaccion();
                 //Si hay algun error hace revert y anula el objeto de la bd
                 unset($base);
             }
         }
     }
 }
Example #6
0
 function grupos_acceso()
 {
     if (!isset($this->grupos_acceso)) {
         $id = toba_contexto_info::get_db()->quote($this->get_id());
         $proyecto = toba_contexto_info::get_db()->quote($this->get_proyecto());
         $sql = "\n\t\t\t\tSELECT g.usuario_grupo_acc\n\t\t\t\tFROM\n\t\t\t\t\tapex_usuario_grupo_acc_item g\n\t\t\t\tWHERE\n\t\t\t\t\tg.item = {$id} AND\n\t\t\t\t\tg.proyecto = {$proyecto}";
         $rs = toba_contexto_info::get_db()->consultar($sql);
         if (empty($rs)) {
             $this->grupos_acceso = array();
         } else {
             $this->grupos_acceso = aplanar_matriz($rs);
         }
     }
     return $this->grupos_acceso;
 }