]> git.llucax.com Git - mecon/intranet.git/commitdiff
Se hace que aparezca el link a SAMURAI si un usuario tiene permisos para administrar...
authorLeandro Lucarella <llucax@gmail.com>
Wed, 4 Feb 2004 18:02:55 +0000 (18:02 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Wed, 4 Feb 2004 18:02:55 +0000 (18:02 +0000)
sistema/www/sistemas.php

index aa741634545ac6d23b9bbafa60733989689da204..ecc28eea7ef87313db6a1b7fa2698fe0a5644d3a 100644 (file)
@@ -51,18 +51,42 @@ $img->updateAttributes(array('width' => 190));
 $fila[] = $img;
 $t->addRow($fila);
 
-$sistemas = AI_Sistema::getSistemas($DB);
+$sists = AI_Sistema::getSistemas($DB);
 
 // Me fijo que sistemas puede ver este usuario.
 require_once 'SAMURAI/Perm.php';
+require_once 'SAMURAI/constantes.php';
 $perm = new SAMURAI_Perm($_SESSION['usuario'], 0, $DB);
-foreach ($sistemas as $i => $s) {
-    // Si no tiene permisos para el sistema, lo saco de la lista.
+$samurai = false;
+$sistemas = array();
+foreach ($sists as $i => $s) {
+    // Agrego los sistemas en los que tiene permiso.
     $perm->setSistema($s->sistema);
-    if (!$perm->tiene()) {
-        unset($sistemas[$i]);
+    if ($perm->tiene()) {
+        // Si es SAMURAI hay que ver si ya no lo agregamos antes.
+        if ($s->sistema == SAMURAI_PERM) {
+            if (!$samurai) {
+                $samurai = true;
+                $sistemas[] = $sists[$i];
+            }
+        } else { // Si no es SAMURAI lo agregamos incondicionalmente.
+            $sistemas[] = $sists[$i];
+        }
+    }
+    // Si tiene permisos de SAMURAI en un sistema, hay que mostrar un link a
+    // SAMURAI.
+    if (!$samurai and $perm->tiene(SAMURAI_PERM_PERFIL_ALTA,
+            SAMURAI_PERM_PERFIL_BAJA, SAMURAI_PERM_PERFIL_MODIF,
+            SAMURAI_PERM_USUARIO_ALTA, SAMURAI_PERM_USUARIO_BAJA,
+            SAMURAI_PERM_USUARIO_MODIF)) {
+        $samurai = true;
+        if (@$sists[SAMURAI_PERM]) {
+            $sistemas[] = $sists[SAMURAI_PERM];
+        }
     }
 }
+unset($sists);
+unset($samurai);
 
 $sistema = @array_shift($sistemas);
 while ($sistema) {