X-Git-Url: https://git.llucax.com/mecon/intranet.git/blobdiff_plain/e0e275daf3624e7c6bfce0eb27717d14572273ce..4b902d520c1d6cae34d5e729da5565c8d290abd7:/sistema/www/sistemas.php diff --git a/sistema/www/sistemas.php b/sistema/www/sistemas.php index aa74163..45b117f 100644 --- a/sistema/www/sistemas.php +++ b/sistema/www/sistemas.php @@ -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 $id => $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 ($id == SAMURAI_PERM) { + if (!$samurai) { + $samurai = true; + $sistemas[] = $sists[$id]; + } + } else { // Si no es SAMURAI lo agregamos incondicionalmente. + $sistemas[] = $sists[$id]; + } + } + // 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) {