X-Git-Url: https://git.llucax.com/mecon/ai.git/blobdiff_plain/b4fb39ec82b3c1e0f904ab0fe39d61f5ec62e10a..929da9471027949b8a0ccff5d4769f9920dcd773:/sistema/www/index.php diff --git a/sistema/www/index.php b/sistema/www/index.php index d68fe8e..b41957a 100644 --- a/sistema/www/index.php +++ b/sistema/www/index.php @@ -27,7 +27,17 @@ // $Id$ // +require_once 'MECON/general.php'; +prepend_include_path('/var/www/sistemas/ai/sistema/local_lib'); require_once 'MECON/HTML/Error.php'; +require_once 'permisos.php'; + +// Si no está logueado, se redirige a la Intranet. {{{ +if (!@$_SESSION['usuario']) { + header('Location: /sistemas/intranet/login?redirect=' + . urlencode($_SERVER['REQUEST_URI'])); +} +// }}} // Debug. {{{ require_once 'PEAR.php'; @@ -35,36 +45,50 @@ require_once 'PEAR.php'; PEAR::setErrorHandling(PEAR_ERROR_RETURN); // }}} +// Creo la base de datos. {{{ +require_once 'AI/DB.php'; +$db =& AI_DB::connect('../conf/DB.ini'); +if (DB::isError($db)) { + die($db->getMessage()); +} +// }}} + +// Creo el objeto de permisos y chequeo que tenga al menos un permiso para seguir. {{{ +require_once 'SAMURAI/Perm.php'; +$perm = new SAMURAI_Perm($_SESSION['usuario'], AI_PERM, $db); +$perm->chequear(); +// }}} + // Creo el Marco. {{{ require_once 'MECON/Marco.php'; -$marco = new Marco('../conf/Marco.php'); +$marco = new MECON_Marco('../conf/Marco.php', $perm); // }}} -// Averiguo si estoy administrando algún tipo de objeto. XXX - desafear {{{ +// Averiguo si estoy administrando algún tipo de objeto. {{{ $tipo = null; if (@$_SERVER['PATH_INFO']) { $tmp = ltrim($_SERVER['PATH_INFO'], '/'); if ($tmp == 'grupo') { $tipo = $tmp; - $clase = "AI_GrupoSecciones"; + $clase = 'AI_GrupoSecciones'; $require = 'AI/GrupoSecciones.php'; $tabla = 'grupo_secciones'; - $nombre = "grupo de secciones"; - $arbol = 'NOTICIAS'; + $nombre = 'grupo de secciones'; + $perm->chequear(AI_PERM_NOTICIAS); } elseif ($tmp == 'servicio') { $tipo = $tmp; $clase = 'AI_Servicio'; $require = 'AI/Servicio.php'; $tabla = $tipo; $nombre = $tipo; - $arbol = 'SERVICIOS'; + $perm->chequear(AI_PERM_SERVICIOS); } elseif ($tmp == 'sistema') { $tipo = $tmp; $clase = 'AI_Sistema'; $require = 'AI/Sistema.php'; $tabla = $tipo; $nombre = $tipo; - $arbol = 'SISTEMAS'; + $perm->chequear(AI_PERM_SISTEMAS); } else { // No hay un objeto válido para administrar. header('Location: '.$_SERVER['SCRIPT_NAME']); } @@ -122,24 +146,16 @@ if ($tipo) { } // }}} - // Creo la base de datos. {{{ - require_once 'AI/DB.php'; - $db =& AI_DB::connect('../conf/DB.ini'); - if (DB::isError($db)) { - die($db->getMessage()); - } - // }}} - // Inicio el formulario, cargando datos de ser necesario. {{{ if ($accion & (AI_BAJA | AI_MODIF)) { $err =& $obj->cargar($db); if (PEAR::isError($err)) { die($err->getMessage()); } - $form->iniciar($obj, $accion); + $form->iniciar($obj, $accion, $db); } else { $accion = AI_ALTA; - $form->iniciar($obj); + $form->iniciar($obj, $accion, $db); } // }}} @@ -213,47 +229,26 @@ if ($tipo) { } // }}} - // Agrego el menu y el formulario a la página. {{{ - // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{ - require_once 'MECON/HTML/Arbol/ArbolDB.php'; - $dbdata = array( - 'db' => &$db, - 'tabla' => $tabla, - 'id' => $tipo, - 'nombre' => 'nombre', - 'prepend_link' => $tipo.'?accion='.AI_MODIF.'&id=', - 'order' => 'asc', - ); - if ($tipo == 'grupo' or $tipo == 'servicio') { - $dbdata['id_padre'] = $tipo . '_padre'; - } elseif ($tipo == 'sistema') { // FIXME - horrible!!! - $dbdata = - array( - 'tabla' => "intranet.$tabla as A, samurai.sistema as S", - 'id' => "A.$tipo", - 'nombre' => 'S.nombre_sistema', - 'where' => 'S.id_sistema = A.sistema AND S.estado = 1', - ) - + $dbdata; - } - $arbol = new HTML_ArbolDB($dbdata, $arbol); - $marco->addMenuVertical($arbol); + require_once 'AI/Arbol.php'; + $arbol = new AI_Arbol($obj, $db, false); // }}} - // Agrego el formulario a la página. {{{ + // Agrego el menu, link para nuevo y formulario a la página. {{{ + $marco->addMenuVertical($arbol); + if ($accion & ~AI_ALTA) { + $form->renderer->tabla->addLink('nuevo', $tipo); + } $marco->addBody($form); // }}} - // }}} - // }}} // No se está editando nada, agrego la imágen de bienvenida a la página. {{{ } else { - require_once 'HTML/Image.php'; + require_once 'MECON/HTML/Image.php'; $marco->setEspacios(false); - $marco->addBody(new HTML_Image('images/home', 'Adminitrador de Intranet')); + $marco->addBody(new MECON_HTML_Image('images/home', 'Adminitrador de Intranet')); } // }}}