]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/www/index.php
Se mejora el link a Nuevo.
[mecon/ai.git] / sistema / www / index.php
index 81cd6a31f8213ef38346c278d521532349108911..8e5fae8023f7b055e8f0fa082aeadb10a869faeb 100644 (file)
 // $Id$
 //
 
-require_once 'MECON/HTML/Error.php';
 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';
 
 // Debug. {{{
 require_once 'PEAR.php';
@@ -37,9 +38,29 @@ 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());
+}
+// }}}
+
+// Si no está logueado, se redirige a la Intranet. {{{
+if (!@$_SESSION['usuario']) {
+    header('Location: /sistemas/intranet/sistemas');
+}
+// }}}
+
+// 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(AI_PERM_NOTICIAS, AI_PERM_SERVICIOS, AI_PERM_SISTEMAS);
+// }}}
+
 // 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. {{{
@@ -48,25 +69,25 @@ 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']);
     }
@@ -124,40 +145,9 @@ 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());
-    }
-    // }}}
-
     // 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',
-        'order'         => 'asc',
-    );
-    // Activo el id del objeto que estamos modificando.
-    if ($accion & (AI_BAJA | AI_MODIF)) {
-        $dbdata['id_activo'] = $obj->$tipo;
-    }
-    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, $tipo.'?accion='.AI_MODIF.'&id=');
+    require_once 'AI/Arbol.php';
+    $arbol = new AI_Arbol($obj, $db);
     // }}}
 
     // Inicio el formulario, cargando datos de ser necesario. {{{
@@ -243,8 +233,20 @@ if ($tipo) {
     }
     // }}}
 
-    // Agrego el menu y formulario a la página. {{{
+    // Agrego el menu, link para nuevo y formulario a la página. {{{
     $marco->addMenuVertical($arbol);
+    if ($accion & ~AI_ALTA) {
+        require_once 'MECON/HTML/Image.php';
+        require_once 'MECON/HTML/Link.php';
+        $marco->addBody('<div class="texto11_negro" valign="middle" align="right">');
+        $link = new MECON_HTML_Link($tipo);
+        $link->addContents('Nuevo');
+        $img = new MECON_HTML_Image('/MECON/images/general_nuevo', 'Agregar nuevo',
+            array('border' => 0, 'align'  => 'middle',));
+        $link->addContents($img);
+        $marco->addBody($link);
+        $marco->addBody('</div>');
+    }
     $marco->addBody($form);
     // }}}
 
@@ -252,9 +254,9 @@ if ($tipo) {
 
 // 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'));
 }
 // }}}