コード例 #1
0
 function verificar_acceso($datos_iniciales = null)
 {
     $auth = $this->instanciar_pedido_onelogin();
     if (!is_null(toba::memoria()->get_parametro('acs'))) {
         //Se verifica la respuesta y se chequea la autenticacion
         $auth->processResponse();
         $this->verificar_errores_onelogin($auth);
         if (!$auth->isAuthenticated()) {
             throw new toba_error_autenticacion('No ha sido posible autenticar al usuario');
         }
         $this->set_atributos_usuario($auth->getAttributes());
         $id_usuario = $this->recuperar_usuario_toba();
         //Recupero usr y verifico existencia en toba, excepcion si no existe
         try {
             toba::manejador_sesiones()->login($id_usuario, 'foobar', $datos_iniciales);
             //La clave no importa porque se autentifica via token
         } catch (toba_reset_nucleo $e) {
             if (isset($_POST['RelayState']) && OneLogin_Saml2_Utils::getSelfURL() != $_POST['RelayState']) {
                 $auth->redirectTo($_POST['RelayState']);
             } else {
                 throw $e;
             }
         }
         return $id_usuario;
     } else {
         $this->procesar_logout($auth);
         //Se hace el redirect hacia el idp
         $parametros_url = array();
         if (isset($this->parametros_url) && is_array($this->parametros_url)) {
             $parametros_url = $this->parametros_url;
         }
         $auth->login($this->generar_url($parametros_url));
     }
 }
コード例 #2
0
ファイル: toba_instancia.php プロジェクト: emma5021/toba
 private function __construct($recargar)
 {
     $this->memoria =& toba::manejador_sesiones()->segmento_info_instancia();
     if (!$this->memoria || $recargar) {
         $this->memoria = $this->get_datos_instancia(self::get_id());
     }
 }
コード例 #3
0
 function __construct()
 {
     $this->item = toba::memoria()->get_item_solicitado();
     $this->id_restricciones = toba::manejador_sesiones()->get_restricciones_funcionales();
     if (!empty($this->id_restricciones)) {
         $this->cargar_info_restricciones();
     }
 }
コード例 #4
0
ファイル: ci_proyecto.php プロジェクト: emma5021/toba
 function evt__modificacion()
 {
     $nuevas = $this->dep('datos')->get();
     $this->dependencia('datos')->sincronizar();
     //---Actualiza los parámetros del proyecto en la sesión activa
     if (toba::manejador_sesiones()->existe_sesion_activa($nuevas['proyecto'])) {
         toba::manejador_sesiones()->recargar_info_proyecto($nuevas['proyecto']);
     }
 }
コード例 #5
0
 function verificar_acceso($datos_iniciales = null)
 {
     $this->iniciar_pedido_saml();
     $id_usuario = $this->recuperar_usuario_toba();
     //Recupero usr y verifico existencia en toba, excepcion si no existe
     toba::manejador_sesiones()->login($id_usuario, 'foobar', $datos_iniciales);
     //La clave no importa porque se autentifica via ticket
     return $id_usuario;
 }
コード例 #6
0
ファイル: ci_ini_sesion.php プロジェクト: emma5021/toba
 function evt__form__modificacion($datos)
 {
     if (isset($datos)) {
         try {
             toba::manejador_sesiones()->iniciar_sesion_proyecto($datos);
         } catch (toba_error_login $e) {
             toba::notificacion()->agregar($e->getMessage());
         }
     }
 }
コード例 #7
0
ファイル: ci_login.php プロジェクト: emma5021/toba
 function post_eventos()
 {
     if (isset($this->s__datos['usuario'])) {
         if (!isset($this->s__datos['clave'])) {
             $this->s__datos['clave'] = null;
         }
         try {
             toba::manejador_sesiones()->login($this->s__datos['usuario'], $this->s__datos['clave']);
         } catch (toba_error_autenticacion $e) {
             toba::notificacion()->agregar($e->getMessage());
         }
     }
 }
コード例 #8
0
ファイル: toba_app_launcher.php プロジェクト: emma5021/toba
 /**
  * Metodo que retorna los datos para cargar el app_launcher, se obtienen del usuario y de la clase de autenticacion
  */
 private function cargar_app_launcher_data()
 {
     // datos por defecto
     $appLauncherDataDefault = array('usuario_id' => toba::usuario()->get_id(), 'usuario_nombre' => toba::usuario()->get_nombre(), 'usuario_foto' => toba_recurso::imagen_toba('usuarios/foto_perfil_defecto.png'), 'aplicaciones' => array());
     // datos provenientes de la autenticacion
     $atributos_usuario = toba::manejador_sesiones()->get_autenticacion()->get_atributos_usuario();
     if (isset($atributos_usuario['appLauncherData']) && !empty($atributos_usuario['appLauncherData'])) {
         $appLauncherData = json_decode(current($atributos_usuario['appLauncherData']), true);
     } else {
         $appLauncherData = array();
     }
     // mergeo entre los datos por defecto y los datos de la autenticacion
     return array_merge($appLauncherDataDefault, $appLauncherData);
 }
コード例 #9
0
ファイル: admin_instancia.php プロジェクト: emma5021/toba
 static function get_proyecto_defecto()
 {
     $proyecto = toba::memoria()->get_dato_instancia('proyecto');
     if (isset($proyecto)) {
         return $proyecto;
     }
     $proyectos = toba::manejador_sesiones()->get_proyectos_activos();
     if (count($proyectos) > 1) {
         foreach ($proyectos as $proyecto) {
             if ($proyecto != toba::proyecto()->get_id()) {
                 return $proyecto;
             }
         }
     }
 }
コード例 #10
0
 protected function cabecera_aplicacion()
 {
     $mostrar_app_launcher = toba::proyecto()->get_parametro('proyecto', 'app_launcher', false);
     if (!$mostrar_app_launcher) {
         $acceso_unico = toba::manejador_sesiones()->get_cantidad_proyectos_cargados() == 1;
         $js = $acceso_unico ? 'salir()' : 'window.close()';
         echo '<a href="#" class="enc-salir" title="Cerrar la sesión" onclick="javascript:' . $js . '">';
         echo toba_recurso::imagen_toba('finalizar_sesion.gif', true);
         echo '</a>';
         //--- Usuario
         $this->info_usuario();
     } else {
         //--- Usuario y aplicaciones
         $this->info_usuario_aplicaciones();
     }
     //--- Logo
     echo "<div id='enc-logo' style='height:{$this->alto_cabecera}'>";
     $this->mostrar_logo();
     echo "</div>\n";
 }
コード例 #11
0
ファイル: toba_memoria.php プロジェクト: emma5021/toba
 private function __construct()
 {
     //toba::logger()->debug("TOBA MEMORIA: Inicializacion.", 'toba');
     //dump_session();
     $this->id = uniqid('st', true);
     $this->url_actual = texto_plano($_SERVER["PHP_SELF"]);
     //-[1]- Busco el ID de referencia de la instanciacion anterior del HILO
     //		Este ID me permite ubicar la memoria correcta para el request ACTUAL
     if (isset($_GET[apex_hilo_qs_id])) {
         $this->hilo_referencia = $_GET[apex_hilo_qs_id];
     } else {
         //Atencion, no hay hilo de referencia. CONTROLAR!!
         //Esto tiene sentido solo para la pagina de logon (?) para el resto
         //del sistema implica que las cosas funcionen mal!
     }
     //-[2]- Que ITEM se solicito?
     $this->item_solicitado = self::get_item_solicitado_original();
     //-[3]- Recupero los parametros
     $this->parametros = array();
     foreach (array_keys($_GET) as $clave) {
         $this->parametros[utf8_decode($clave)] = utf8_decode($_GET[$clave]);
     }
     //		$this->parametros = $_GET;
     //FALTA hacer un URL decode!!!
     $encriptar_qs = toba::proyecto()->get_parametro('encriptar_qs');
     if ($encriptar_qs) {
         if (isset($_GET[apex_hilo_qs_parametros])) {
             $encriptador = toba::encriptador();
             parse_str($encriptador->descifrar($_GET[apex_hilo_qs_parametros]), $parametros);
             $this->parametros = array_merge($this->parametros, $parametros);
             unset($this->parametros[apex_hilo_qs_parametros]);
             unset($this->parametros["jmb76"]);
             //Clave agregada para complicar la encriptacion
         }
     }
     unset($this->parametros[apex_hilo_qs_id]);
     unset($this->parametros[apex_hilo_qs_item]);
     //------- MEMORIA -- Hago el bindeo con $_SESSION  ----------------------------
     // Determino el ID de la celda de memoria actual
     if (isset($this->parametros[apex_hilo_qs_celda_memoria])) {
         $this->celda_memoria_actual_id = $this->parametros[apex_hilo_qs_celda_memoria];
         unset($this->parametros[apex_hilo_qs_celda_memoria]);
     } else {
         $this->celda_memoria_actual_id = apex_hilo_qs_celda_memoria_defecto;
     }
     // Apunto las referencias a session
     $this->memoria_celdas =& toba::manejador_sesiones()->segmento_memoria_proyecto();
     // Celda ACTUAL
     if (!isset($this->memoria_celdas[$this->celda_memoria_actual_id])) {
         $this->memoria_celdas[$this->celda_memoria_actual_id] = array();
     }
     $this->celda_memoria_actual =& $this->memoria_celdas[$this->celda_memoria_actual_id];
     // Memoria GLOBAL
     if (!isset($this->memoria_celdas['__toba__global_proyecto'])) {
         $this->memoria_celdas['__toba__global_proyecto'] = array();
     }
     $this->memoria_global =& $this->memoria_celdas['__toba__global_proyecto'];
     // Memoria de la INSTANCIA
     $this->memoria_instancia =& toba::manejador_sesiones()->segmento_datos_instancia();
     //-----------------------------------------------------------------------------
     if (isset($this->parametros[apex_hilo_qs_servicio])) {
         $this->servicio = substr($this->parametros[apex_hilo_qs_servicio], 0, 60);
         unset($this->parametros[apex_hilo_qs_servicio]);
     }
     if (isset($this->parametros[apex_hilo_qs_objetos_destino])) {
         $objetos = $this->parametros[apex_hilo_qs_objetos_destino];
         $lista_obj = explode(",", $objetos);
         $this->objetos_destino = array();
         foreach ($lista_obj as $obj) {
             if (trim($obj) != '') {
                 $this->objetos_destino[] = explode(apex_qs_separador, $obj);
             }
         }
         unset($this->parametros[apex_hilo_qs_servicio]);
     }
     //Guardo el FLAG que indica si se accedio por el menu
     if (isset($_GET[apex_hilo_qs_menu])) {
         $this->acceso_menu = true;
     } else {
         $this->acceso_menu = false;
     }
     $this->inicializar_memoria();
     if (isset($this->celda_memoria_actual['hilo'])) {
         //Si la página requerida es una que ya se genero, se descartan los siguientes pedidos
         //Esto permite manejar el caso del refresh y el back, aunque se pierde la posibilidad de re-hacer con forward
         //ya que cada back que se ingresa genera un nuevo estado (porque se realiza una nueva ejecución)
         $claves = array_keys($this->celda_memoria_actual['hilo']);
         if (in_array($this->hilo_referencia, $claves) && $this->hilo_referencia != end($claves)) {
             //No provengo desde la ultima generacion (seria el caso normal)
             $encontrado = false;
             foreach ($claves as $clave) {
                 if ($encontrado) {
                     unset($this->celda_memoria_actual['hilo'][$clave]);
                     //Borro aquellos que quedan en 'sandwich'
                 }
                 if ($clave == $this->hilo_referencia) {
                     $encontrado = true;
                 }
             }
         }
     }
 }
コード例 #12
0
ファイル: toba_editor.php プロジェクト: emma5021/toba
 static function generar_zona_vinculos_item($item, $accion, $enviar_div_wrapper = true)
 {
     if (!self::acceso_recursivo()) {
         toba::solicitud()->set_cronometrar(true);
     }
     toba_js::cargar_consumos_globales(array('utilidades/toba_editor'));
     $html_ayuda_editor = toba_recurso::ayuda(null, 'Presionando la tecla CTRL se pueden ver los enlaces hacia los editores de los distintos componentes de esta página');
     $html_ayuda_cronometro = toba_recurso::ayuda(null, 'Ver los tiempos de ejecución en la generación de esta página');
     $html_ayuda_ajax = toba_recurso::ayuda(null, 'Activar/Desactivar navegación interna de la operación via AJAX');
     $html_ayuda_editor = toba_recurso::ayuda(null, 'Volver al editor de toba');
     $solicitud = toba::solicitud()->get_id();
     $link_cronometro = toba::vinculador()->get_url('toba_editor', '1000263', null, array('prefijo' => toba_editor::get_punto_acceso_editor()));
     $link_analizador_sql = toba::vinculador()->get_url('toba_editor', '30000030', null, array('prefijo' => toba_editor::get_punto_acceso_editor()));
     $link_logger = toba::vinculador()->get_url('toba_editor', '1000003', null, array('prefijo' => toba_editor::get_punto_acceso_editor()));
     $link_archivos = toba::vinculador()->get_url('toba_editor', '30000029', null, array('prefijo' => toba_editor::get_punto_acceso_editor()));
     $estilo = toba::proyecto()->get_parametro('estilo');
     if ($enviar_div_wrapper) {
         echo "<div id='editor_previsualizacion'>";
         /*echo "<div id='editor_previsualizacion_colap'><img style='cursor:pointer;_cursor:hand;' title='Ocultar la barra'
         		src='".toba_recurso::imagen_toba('nucleo/expandir_izq.gif', false)."'
         		onclick='toggle_nodo(\$\$(\"editor_previsualizacion_cont\"))'/></div>";*/
     }
     echo "<span id='editor_previsualizacion_cont'>";
     echo "<span id='editor_previsualizacion_vis'>";
     //Logger
     list($log_nivel, $log_cant) = toba::logger()->get_mensajes_minimo_nivel();
     $niveles = toba::logger()->get_niveles();
     $niveles[0] = 'INFO';
     $img = self::imagen_editor('logger/' . strtolower($niveles[$log_nivel]) . '.gif', true);
     $html_ayuda_logger = toba_recurso::ayuda(null, 'Visor de logs');
     echo "<a href='{$link_logger}' target='logger' {$html_ayuda_logger} >" . $img . " {$log_cant}</a>\n";
     //Cronometro
     toba::cronometro()->marcar('Resumen toba_editor');
     echo "<a href='{$link_cronometro}' target='logger' {$html_ayuda_cronometro} >\n" . toba_recurso::imagen_toba('clock.png', true) . ' ' . round(toba::cronometro()->tiempo_acumulado(), 2) . ' seg' . "</a> ";
     //Memoria
     if (function_exists('memory_get_peak_usage')) {
         $memoria_pico = memory_get_peak_usage();
         echo toba_recurso::imagen_toba('memory.png', true, 16, 16, 'Pico máximo de memoria que ha consumido el script actual');
         echo ' ' . file_size($memoria_pico, 0) . ' ';
     }
     //Base de datos
     $fuente = toba_admin_fuentes::instancia()->get_fuente_predeterminada(false, toba_editor::get_proyecto_cargado());
     if ($fuente) {
         try {
             $base = toba_admin_fuentes::instancia()->get_fuente($fuente, toba_editor::get_proyecto_cargado())->get_db();
             $info_db = $base->get_info_debug();
             $total = 0;
             foreach ($info_db as $info) {
                 if (isset($info['fin'])) {
                     $total += $info['fin'] - $info['inicio'];
                 }
             }
             $rol = toba::db()->get_rol_actual();
             toba::memoria()->set_dato_instancia('previsualizacion_consultas', array('fuente' => $fuente, 'datos' => $info_db));
             echo "<a href='{$link_analizador_sql}' target='logger'>" . toba_recurso::imagen_toba('objetos/datos_relacion.gif', true, 16, 16, 'Ver detalles de las consultas y comandos ejecutados en este pedido de página') . count($info_db) . " ({$rol})</a>";
         } catch (toba_error $e) {
             //Si no se tiene acceso a la base no se hace nada
         }
     }
     //Archivos
     $archivos = self::get_archivos_incluidos();
     $total = 0;
     foreach ($archivos as $arch) {
         $total += filesize($arch);
     }
     toba::memoria()->set_dato_instancia('previsualizacion_archivos', $archivos);
     echo "<a href='{$link_archivos}' target='logger'>" . toba_recurso::imagen_toba('nucleo/php.gif', true, 16, 16, 'Ver detalle de archivos .php del proyecto incluidos en este pedido de página') . ' ' . count($archivos) . " arch. (" . file_size($total, 0) . ')</a>';
     //Session
     $tamano = file_size(strlen(serialize($_SESSION)), 0);
     echo toba_recurso::imagen_toba('sesion.png', true, 16, 16, 'Tamaño de la sesión') . " {$tamano}  ";
     echo "</span>";
     //-- ACCIONES
     echo "<span id='editor_previsualizacion_acc'>";
     $perfiles = array(apex_ef_no_seteado => '-- Todos --');
     foreach (toba::manejador_sesiones()->get_perfiles_funcionales() as $perfil) {
         $perfiles[$perfil] = $perfil;
     }
     $actuales = toba::manejador_sesiones()->get_perfiles_funcionales_activos();
     $actual = null;
     if (count($actuales) == 1) {
         $actual = current($actuales);
     }
     $js = "title='Cambia el perfil actual del usuario' onchange=\"location.href = toba_prefijo_vinculo + '&perfil_activo=' + this.value\"";
     echo "Perfiles: " . toba_form::select('cambiar_perfiles', $actual, $perfiles, 'ef-combo', $js);
     //Usuario de la base
     $hay_limitado = false;
     if (!isset(self::$fuentes)) {
         self::$fuentes = toba_info_editores::get_fuentes_datos(toba_editor::get_proyecto_cargado());
     }
     foreach (self::$fuentes as $fuente) {
         if ($fuente['permisos_por_tabla']) {
             $hay_limitado = true;
         }
     }
     if ($hay_limitado) {
         $actual = self::$memoria['conexion_limitada'] ? 'limitado' : 'normal';
         $datos = array("normal" => "Normal", "limitado" => "Limitados");
         $js = "title='Cambia temporalmente el usuario de conexión a la base' onchange=\"location.href = toba_prefijo_vinculo + '&usuario_conexion=' + this.value\"";
         echo "Permisos DB: " . toba_form::select('cambiar_rol', $actual, $datos, 'ef-combo', $js);
     }
     //Skin
     $skins = rs_convertir_asociativo(toba_info_editores::get_lista_skins(), array('estilo', 'proyecto'), 'descripcion');
     $js = "title='Cambia temporalmente el skin de la aplicación' onchange=\"location.href = toba_prefijo_vinculo + '&skin=' + this.value\"";
     $defecto = toba::proyecto()->get_parametro('estilo') . apex_qs_separador . toba::proyecto()->get_parametro('estilo_proyecto');
     echo "Skin: " . toba_form::select('cambiar_skin', $defecto, $skins, 'ef-combo', $js);
     //AJAX
     echo "<a id='editor_ajax' href='javascript: editor_cambiar_ajax()' {$html_ayuda_ajax}>" . toba_recurso::imagen_toba('objetos/ajax_off.png', true) . "</a>\n";
     //Edicion
     echo "<a href='javascript: editor_cambiar_vinculos()' {$html_ayuda_editor} >" . toba_recurso::imagen_toba('edicion_chico.png', true) . "</a>\n";
     //Arbol
     $vinculos = self::get_vinculos_item($item, $accion);
     if (isset($vinculos[1])) {
         self::mostrar_vinculo($vinculos[1]);
     }
     //Editor
     echo "<a href='#' onclick='return toba_invocar_editor()' {$html_ayuda_editor}>" . toba_recurso::imagen_toba('icono_16.png', true) . "</a>\n";
     echo "</span>";
     echo "</span>";
     echo "<div class='div-editor' style='position:fixed; top: 85px; left: 1px;'>";
     foreach (self::get_vinculos_item($item, $accion) as $vinculo) {
         self::mostrar_vinculo($vinculo);
     }
     echo "</div>";
     if ($enviar_div_wrapper) {
         echo "</div>";
     }
 }
コード例 #13
0
ファイル: control.php プロジェクト: emma5021/toba
$js_cambiar_color_2 = " onmouseover=\"this.className='listado-barra-superior-tabn-m';\" " . "  onmouseout=\"this.className='listado-barra-superior-tabn';\"";
if (isset($_POST['admin_proyecto'])) {
    toba_editor::set_proyecto_cargado($_POST['admin_proyecto']);
    toba::memoria()->set_dato_instancia('proyecto', $_POST['admin_proyecto']);
    $opciones = array('validar' => false);
    $vinculo = toba::vinculador()->get_url(toba_editor::get_id(), 1000231, array(), $opciones);
    //-- Fuerza a recargar los datos de instalacion e instancia
    toba_manejador_sesiones::recargar_info_instalacion();
    toba_manejador_sesiones::recargar_info_instancia();
    //--- Refresca los otros frames
    echo toba_js::abrir();
    echo "top.location.href = '{$vinculo}';";
    echo toba_js::cerrar();
}
echo toba_form::abrir('cambiar_proyecto', '');
toba::manejador_sesiones()->enviar_csrf_hidden();
?>

<style type='text/css'>
.ci-tabs-h-lista a {
	padding: 5px 10px 2px 3px;
	min-height: 20px;
}
#barra_superior {
	display:none;
}
</style>
<script type="text/javascript" language='javascript'>
var frame_admin = top.document.getElementById('frameset_admin');
if (frame_admin) {
	var ancho_frame = frame_admin.cols;
コード例 #14
0
ファイル: toba_proyecto.php プロジェクト: emma5021/toba
 /**
  * Retorna la lista de permisos globales (tambien llamados derechos) de un grupo de acceso en el proyecto actual
  */
 function get_lista_permisos($grupos_acceso = null)
 {
     $grupos_acceso = isset($grupos_acceso) ? $grupos_acceso : toba::manejador_sesiones()->get_perfiles_funcionales_activos();
     if (toba::nucleo()->utilizar_metadatos_compilados($this->id)) {
         $rs = $this->recuperar_datos_compilados_grupo('toba_mc_gene__grupo_', $grupos_acceso, 'get_lista_permisos');
     } else {
         $rs = toba_proyecto_db::get_lista_permisos($this->id, $grupos_acceso);
     }
     return $rs;
 }
コード例 #15
0
ファイル: toba_usuario_basico.php プロジェクト: emma5021/toba
 function set_perfil_activo($perfil)
 {
     if (is_null($perfil)) {
         $perfil = $this->get_perfiles_funcionales();
     } else {
         $perfil = array($perfil);
     }
     toba::manejador_sesiones()->set_perfiles_funcionales_activos($perfil);
 }
コード例 #16
0
ファイル: toba_dba.php プロジェクト: emma5021/toba
 private static function get_usuario_db($id_base, $parametros)
 {
     $usuario = $parametros['usuario'];
     $clave = $parametros['clave'];
     if (isset($parametros['conexiones_perfiles'])) {
         //Trata de sacarlo del archivo .ini asociado
         $perfiles = toba::manejador_sesiones()->get_perfiles_funcionales_activos();
         if (empty($perfiles)) {
             $seccion = 'no_autenticado';
         } else {
             $seccion = implode(", ", $perfiles);
         }
         $archivo = toba::nucleo()->toba_instalacion_dir() . '/' . $parametros['conexiones_perfiles'];
         if (!file_exists($archivo) || is_dir($archivo)) {
             throw new toba_error_def("La base '{$id_base}' posee una referencia a un archivo de conexiones de perfiles inexistente: '{$archivo}'");
         }
         $usuarios = parse_ini_file($archivo, true);
         if (isset($usuarios[$seccion])) {
             if (!isset($usuarios[$seccion]['usuario'])) {
                 throw new toba_error_def("La definición '{$seccion}' del archivo '{$archivo}' no posee el valor 'usuario'");
             }
             if (!isset($usuarios[$seccion]['clave'])) {
                 throw new toba_error_def("La definición '{$seccion}' del archivo '{$archivo}' no posee el valor 'clave'");
             }
             return array($usuarios[$seccion]['usuario'], $usuarios[$seccion]['clave']);
         }
     }
     return array($usuario, $clave);
 }
コード例 #17
0
ファイル: toba_nucleo.php プロジェクト: emma5021/toba
 function verificar_pedido_post()
 {
     if ($_SERVER['REQUEST_METHOD'] == 'POST' && toba::manejador_sesiones()->existe_usuario_activo()) {
         //Solo si es request via post. Hay que ver para el put.
         $frm = isset($_POST[apex_sesion_csrt]) ? $_POST[apex_sesion_csrt] : null;
         if (toba::memoria()->validar_pedido_pagina($frm) === false) {
             toba::logger()->debug('Se intenta hacer un post donde no coinciden parametros anti CSRF');
             toba::logger()->debug(' Form: ' . var_export($frm, true));
             toba::memoria()->fijar_csrf_token(true);
             throw new toba_error_seguridad('Request Invalido');
         }
     }
 }
コード例 #18
0
 function conf__cuadro_planes(libro_unco_ei_cuadro $cuadro)
 {
     $sigla = toba::memoria()->get_parametro('sigla');
     if (isset($sigla)) {
         $this->s__sigla = $sigla;
     }
     $this->dep('cuadro_planes')->set_titulo($this->s__sigla);
     $this->s__datos_filtro['sigla']['valor'] = $this->s__sigla;
     //Obtener el perfil funcional por si es posgrado
     $u = toba::manejador_sesiones()->get_perfiles_funcionales();
     $p = array_search('posgrado', $u);
     if ($p !== false) {
         //Ingreso con perfil posgrado
         $this->s__datos_filtro['nivel']['condicion'] = "es_igual_a";
         $this->s__datos_filtro['nivel']['valor'] = "Posgrado";
         //nivel de posgrado
     }
     $cuadro->set_datos($this->dep('datos')->tabla('plan_estudio')->get_listado($this->s__datos_filtro));
 }
コード例 #19
0
ファイル: ci_login.php プロジェクト: emma5021/toba
    function extender_objeto_js()
    {
        if (toba::instalacion()->get_tipo_autenticacion() == 'openid') {
            $personalizable = '';
            foreach ($this->get_openid_providers() as $id => $provider) {
                if (isset($provider['personalizable']) && $provider['personalizable']) {
                    $personalizable = $id;
                }
            }
            echo "\n\t\t\t\t{$this->dep('openid')->objeto_js}.evt__provider__procesar = function(inicial) {\n\t\t\t\t\tif (this.ef('provider').get_estado() == '{$personalizable}') {\n\t\t\t\t\t\tthis.ef('provider_url').mostrar();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.ef('provider_url').ocultar();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t";
        }
        $finalizar = toba::memoria()->get_parametro(apex_sesion_qs_finalizar);
        if (is_null($finalizar)) {
            //Sesion activa
            if (toba::manejador_sesiones()->existe_usuario_activo()) {
                //Si ya esta logueado y se abre el sistema en popup, abrirlo
                if (isset($this->s__item_inicio)) {
                    list($proyecto, $item) = explode($this->s__item_inicio);
                } else {
                    $proyecto = toba::proyecto()->get_id();
                    $item = toba::proyecto()->get_parametro('item_inicio_sesion');
                }
                $url = toba::vinculador()->get_url($proyecto, $item);
                if ($this->en_popup) {
                    echo " abrir_popup('sistema', '{$url}', {resizable: 1});\t";
                } else {
                    echo " window.location.href = '{$url}';";
                }
            }
        } elseif ($this->en_popup) {
            //Se finaliza la sesion
            echo '
					if (window.opener &&  window.opener.location) {
						window.opener.location.href = window.opener.location.href; 
					}
					window.close();
				';
        }
    }
コード例 #20
0
ファイル: toba_perfil_datos.php プロジェクト: emma5021/toba
 function __construct()
 {
     // Por defecto el sistema se activa sobre el proyecto y usuario actual
     $this->id = toba::manejador_sesiones()->get_perfil_datos_activo();
     $this->inicializar(toba::proyecto()->get_id());
 }
コード例 #21
0
 function recargar_info_proyecto($proyecto)
 {
     if ($proyecto == toba_proyecto::get_id()) {
         toba_proyecto::eliminar_instancia();
     }
     $info =& toba::manejador_sesiones()->segmento_info_proyecto($proyecto);
     $info = null;
 }
コード例 #22
0
ファイル: ci_datos_plan.php プロジェクト: svs07uni/libro_unco
 function conf__form_plan(libro_unco_ei_formulario $form)
 {
     $u = toba::manejador_sesiones()->get_perfiles_funcionales();
     $p = array_search('posgrado', $u);
     if ($p !== false) {
         //Ingreso con perfil posgrado
         $this->dep('form_plan')->ef('nivel')->set_solo_lectura(true);
     }
     if (isset($this->controlador->s__id_plan)) {
         //Existen datos de este plan
         //oculto los botones del formulario inicial
         $this->dep('form_plan')->evento('crear')->ocultar();
         $this->dep('form_plan')->evento('cancelar')->ocultar();
         $filtro['id_plan']['valor'] = $this->controlador->s__id_plan;
         $ar = $this->controlador()->dep('datos')->tabla('plan_estudio')->get();
         if (!isset($ar)) {
             //No hay nada cargado en memoria ent buscar en BD, en el caso que se presionó cancelar
             $plan = $this->controlador()->dep('datos')->tabla('plan_estudio')->get_listado($filtro);
             if (count($plan) > 0) {
                 $ar = $plan[0];
                 $p['id_plan'] = $plan[0]['id_plan'];
                 $this->controlador()->dep('datos')->tabla('plan_estudio')->cargar($p);
             }
         }
         if (!isset($this->s__areas)) {
             $pertenece = $this->controlador()->dep('datos')->tabla('pertenece')->get_listado($filtro);
             if (sizeof($pertenece) > 0) {
                 foreach ($pertenece as $clave => $valor) {
                     $areas[$clave] = $valor['id_area'];
                 }
                 $this->s__areas = $areas;
             }
         }
         $ar['areas'] = $this->s__areas;
         //Nivel pregrado, grado, posgrado o ciclo de licenciatura(nuevo)
         if ($ar['nivel'] == 0) {
             $ar['nivel'] = 'Grado';
         } else {
             if ($ar['nivel'] == 1) {
                 $ar['nivel'] = 'Posgrado';
             } else {
                 if ($ar['nivel'] == 2) {
                     $ar['nivel'] = 'Ciclo de Licenciatura';
                 } else {
                     $ar['nivel'] = 'Pregrado';
                 }
             }
         }
         return $ar;
     } else {
         //Es plan nuevo, oculto las pantallas y el evento guardar propio del controlador
         $this->pantalla()->tab('pant_sede')->ocultar();
         $this->pantalla()->tab('pant_observacion')->ocultar();
         $this->pantalla()->tab('pant_modulos')->ocultar();
         $this->pantalla()->tab('pant_materias')->ocultar();
         $this->pantalla()->tab('pant_descripcion')->ocultar();
         $this->evento('guardar')->ocultar();
         $this->evento('cancelar')->ocultar();
         $this->evento('listo')->ocultar();
         $this->s__datos_form['nivel'] = "Posgrado";
         return $this->s__datos_form;
     }
 }
コード例 #23
0
ファイル: toba_puntos_control.php プロジェクト: emma5021/toba
 /**
  * @ignore. Retorna el bloque de memoria de trabajo de los puntos de control
  */
 private function &get_bloque()
 {
     return toba::manejador_sesiones()->segmento_memoria_puntos_control();
 }
コード例 #24
0
 function iniciar_sesion($usuario, $clave, $datos_iniciales = null)
 {
     toba::manejador_sesiones()->login($usuario, $clave, $datos_iniciales);
 }
コード例 #25
0
ファイル: toba_solicitud_web.php プロジェクト: emma5021/toba
 function registrar()
 {
     parent::registrar();
     $id_sesion = toba::manejador_sesiones()->get_id_sesion();
     if ($this->registrar_db && isset($id_sesion)) {
         toba::instancia()->registrar_solicitud_browser($this->info['basica']['item_proyecto'], $this->id, toba::proyecto()->get_id(), toba::manejador_sesiones()->get_id_sesion(), $_SERVER['REMOTE_ADDR']);
     }
 }