]> git.llucax.com Git - mecon/ai.git/commitdiff
Se agrega manejo de permisos.
authorLeandro Lucarella <llucax@gmail.com>
Thu, 31 Jul 2003 23:04:40 +0000 (23:04 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 31 Jul 2003 23:04:40 +0000 (23:04 +0000)
sistema/conf/Marco.php
sistema/local_lib/permisos.php [new file with mode: 0644]
sistema/www/index.php

index 926aa2394e0f09aa63bbe4a8596ed1bb861fbfe0..a676d7b3e354528e300ebcf956f2de1624aa1087 100644 (file)
 // $Id$
 //
 
+require_once 'permisos.php';
+
 return array (
     // Directorios web del sistema, salvo el root, todos son opcionales.
     // Si no se ponen, o están vacíos se asume lo que dice el comentario al lado de cada uno.
     'directorios'       => array ('root' => '/sistemas/ai'),
     'titulo_sistema'    => 'AI (Administrador de Intranet)',
-    'pie_sistema'       => 'PIE GO HOME!!!!',
     'secciones'         => array (
         // Las únicas claves obligatorias son nombre, imagenComun y link
 
@@ -42,6 +43,7 @@ return array (
             'imagenComun'   => 'general_noticias.gif',  // Imagen común
             'link'          => 'index/grupo',           // Link de la sección
             'tipoMenu'      => 'oculto',                // Tipo del menú de hijos [vertical, horizontal, oculto]
+            'permisos'      => AI_PERM_NOTICIAS,
         ),
         // }}}
 
@@ -51,6 +53,7 @@ return array (
             'imagenComun'   => 'general_servicios.gif',
             'link'          => 'index/servicio',
             'tipoMenu'      => 'oculto',
+            'permisos'      => AI_PERM_SERVICIOS,
         ),
         // }}}
 
@@ -60,6 +63,7 @@ return array (
             'imagenComun'   => 'general_sistemas.gif',
             'link'          => 'index/sistema',
             'tipoMenu'      => 'oculto',
+            'permisos'      => AI_PERM_SISTEMAS,
         ),
         // }}}
     ),
diff --git a/sistema/local_lib/permisos.php b/sistema/local_lib/permisos.php
new file mode 100644 (file)
index 0000000..2001aa9
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+// vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+// +--------------------------------------------------------------------+
+// |                      Ministerio de Economía                        |
+// |                  AI (Administrador de Intranet)                    |
+// +--------------------------------------------------------------------+
+// | This file is part of AI.                                           |
+// |                                                                    |
+// | AI is free software; you can redistribute it and/or modify         |
+// | it under the terms of the GNU General Public License as published  |
+// | by the Free Software Foundation; either version 2 of the License,  |
+// | or (at your option) any later version.                             |
+// |                                                                    |
+// | AI is distributed in the hope that it will be useful, but          |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of         |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   |
+// | General Public License for more details.                           |
+// |                                                                    |
+// | You should have received a copy of the GNU General Public License  |
+// | along with Hooks; if not, write to the Free Software Foundation,   |
+// | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA      |
+// +--------------------------------------------------------------------+
+// | Creado: jue jul 31 19:49:46 ART 2003                               |
+// | Autor:  Leandro Lucarella <llucar@mecon.gov.ar>                    |
+// +--------------------------------------------------------------------+
+//
+// $Id$
+//
+
+/**
+ * Permiso para administrar grupos de noticias.
+ */
+define('AI_PERM_NOTICIAS', 49);
+
+/**
+ * Permiso para administrar servicios.
+ */
+define('AI_PERM_SERVICIOS', 50);
+
+/**
+ * Permiso para administrar sistemas.
+ */
+define('AI_PERM_SISTEMAS', 51);
+
+/**
+ * Identificador del sistema en SAMURAI.
+ */
+define('AI_PERM', 45);
+
+?>
index 655e9675fb89f8f4a3254c7173254e9b4d3f873c..4983778a0c9f555d8524bfef6ded7ee5a8f8843e 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,22 @@ 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 - FIXME - esto debería venir de intranet. {{{
+require_once 'SAMURAI/Perm.php';
+$perm = new SAMURAI_Perm(@$_GET['login'] ? $_GET['login'] : 'llucar@mecon', AI_PERM, $db);
+// }}}
+
 // Creo el Marco. {{{
 require_once 'MECON/Marco.php';
-$marco = new MECON_Marco('../conf/Marco.php');
+$marco = new MECON_Marco('../conf/Marco.php', $perm);
 // }}}
 
 // Averiguo si estoy administrando algún tipo de objeto. {{{
@@ -48,22 +62,31 @@ 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";
+        $nombre  = 'grupo de secciones';
+        if (!$perm->tiene(AI_PERM_NOTICIAS)) {
+            die('Acceso no autorizado!!!'); // FIXME - se va a poner más lindo?
+        }
     } elseif ($tmp == 'servicio') {
         $tipo    = $tmp;
         $clase   = 'AI_Servicio';
         $require = 'AI/Servicio.php';
         $tabla   = $tipo;
         $nombre  = $tipo;
+        if (!$perm->tiene(AI_PERM_SERVICIOS)) {
+            die('Acceso no autorizado!!!'); // FIXME - se va a poner más lindo?
+        }
     } elseif ($tmp == 'sistema') {
         $tipo    = $tmp;
         $clase   = 'AI_Sistema';
         $require = 'AI/Sistema.php';
         $tabla   = $tipo;
         $nombre  = $tipo;
+        if (!$perm->tiene(AI_PERM_SISTEMAS)) {
+            die('Acceso no autorizado!!!'); // FIXME - se va a poner más lindo?
+        }
     } else { // No hay un objeto válido para administrar.
         header('Location: '.$_SERVER['SCRIPT_NAME']);
     }
@@ -121,14 +144,6 @@ 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 'AI/Arbol.php';
     $arbol = new AI_Arbol($obj, $db);