From: Martín Marrese Date: Thu, 16 Oct 2003 23:03:09 +0000 (+0000) Subject: Ahora sel-sistema solo muestra los sistemas a los cuales el usuario tiene acceso... X-Git-Tag: svn_import~63 X-Git-Url: https://git.llucax.com/mecon/samurai.git/commitdiff_plain/7d6253665e1e39bbb176518d9f99c9fc174c9490?ds=sidebyside;hp=346c91ca894a5f231f481f0eed740208a7573e34 Ahora sel-sistema solo muestra los sistemas a los cuales el usuario tiene acceso. La excepcion es para aquellos usuarios que tienen el permiso developer en samurai, ellos ven todos los sistemas y pueden trabajar con igual impunidad en todos --- diff --git a/doc/Samurai.xmi b/doc/Samurai.xmi index 57546fe..6ad652c 100644 --- a/doc/Samurai.xmi +++ b/doc/Samurai.xmi @@ -10,7 +10,7 @@ - + @@ -194,6 +194,9 @@ x2c: get set" name="permisos" static="0" scope="201" /> + + + @@ -283,7 +286,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -315,14 +318,14 @@ x2c:set" name="sistema" static="0" scope="202" /> - + - + - + - + @@ -353,13 +356,13 @@ x2c:set" name="sistema" static="0" scope="202" /> - + - + @@ -402,7 +405,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -440,7 +443,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -459,6 +462,7 @@ x2c:set" name="sistema" static="0" scope="202" /> + diff --git a/lib/SAMURAI/Perfil.php b/lib/SAMURAI/Perfil.php index 6088ad6..3a58940 100644 --- a/lib/SAMURAI/Perfil.php +++ b/lib/SAMURAI/Perfil.php @@ -628,4 +628,4 @@ class SAMURAI_Perfil { } // -X2C Class :SAMURAI_Perfil -?> +?> \ No newline at end of file diff --git a/lib/SAMURAI/Sistema.php b/lib/SAMURAI/Sistema.php index f82f36f..fe7eb75 100644 --- a/lib/SAMURAI/Sistema.php +++ b/lib/SAMURAI/Sistema.php @@ -1003,6 +1003,52 @@ class SAMURAI_Sistema { } // -X2C + // +X2C Operation 397 + /** + * Devuelve un array asociativo en donde la clave es el identificador y el valor es el nombre del sistema. Solo devuelve aquellos sistemas en los cuales el usuario tiene permisos. + * + * @param DB &$DB Conexion a la base de datos + * + * @return array() + * @access public + */ + function getArraySistemasSeleccionar(&$DB) // ~X2C + { + $rta = array(); + $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true); + //Verifico si tiene permiso developer en samurai + $consulta = $sql['sistemas_seleccionar2']; + $dbh = $DB->prepare($consulta); + $res = $DB->execute($dbh, array(SAMURAI_PERM, $_SESSION['usuario'], + SAMURAI_PERM_DEVELOPER)); + $re = $res->fetchrow(DB_FETCHMODE_ASSOC); + if ($re['cuenta']) { + $consulta = $sql['obtener_datos_sistema']; + $consulta.= $sql['obtener_datos_sistema3']; + $consulta.= $sql['obtener_datos_sistema4']; + $dbh = $DB->prepare($consulta); + $res = $DB->execute($dbh); + while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { + $rta[$re['id_sistema']] = $re['nombre_sistema']; + } + $res->free(); + return $rta; + } + //Si no tiene permiso developer en samurai le muestro solo aquellos + //sistemas en los cuales puede trabajar + $consulta = $sql['sistemas_seleccionar']; + $dbh = $DB->prepare($consulta); + $res = $DB->execute($dbh, array($_SESSION['usuario'])); + while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { + $rta[$re['id_sistema']] = $re['nombre_sistema']; + } + $res->free(); + + return $rta; + + } + // -X2C + } // -X2C Class :SAMURAI_Sistema -?> \ No newline at end of file +?> diff --git a/lib/SAMURAI/Sistema/consultas.ini b/lib/SAMURAI/Sistema/consultas.ini index d6345cd..b5ac6f3 100644 --- a/lib/SAMURAI/Sistema/consultas.ini +++ b/lib/SAMURAI/Sistema/consultas.ini @@ -14,6 +14,9 @@ borrar_permisos = " DELETE FROM samurai.perm_sist WHERE id_sistema = ? " borrar_permisos2 = " AND observaciones = ?" borrar_permisos3 = " AND id_permiso = ?" +sistemas_seleccionar = "SELECT DISTINCT psu.id_sistema AS id_sistema, s.nombre_sistema AS nombre_sistema FROM samurai.perfil_sist_usuario AS psu, samurai.sistema AS s WHERE psu.id_sistema = s.id_sistema AND s.estado = 1 AND psu.login = ? ORDER BY s.nombre_sistema" +sistemas_seleccionar2 = "SELECT count(psu.id_sistema) AS cuenta FROM samurai.perfil_sist_usuario AS psu, samurai.perm_perfil_sist AS pps WHERE psu.id_sistema = ? AND login = ? AND psu.id_perfil = pps.id_perfil AND psu.id_sistema = pps.id_sistema AND pps.id_permiso = ?" + ;BORRAR ASOCIACIONES ea_obt_idperfil = "SELECT id_perfil FROM samurai.perm_perfil_sist WHERE id_permiso = ? AND observaciones = ? AND id_sistema = ?" ea_del_perm_perfil_sist = "DELETE FROM samurai.perm_perfil_sist WHERE id_permiso = ? AND observaciones = ? AND id_sistema = ?" diff --git a/sistema/www/sel-sistema.php b/sistema/www/sel-sistema.php index 6a3e776..b76280d 100644 --- a/sistema/www/sel-sistema.php +++ b/sistema/www/sel-sistema.php @@ -30,7 +30,7 @@ $FORM = new MECON_HTML_QuickForm ('sel_sistema','post','sel-sistema'); $TABLAFORM =& new MECON_HTML_Tabla ('width="400"', 'comun'); $FORM->renderer->setTable($TABLAFORM); - $SISTEMAS = SAMURAI_Sistema::getArraySistemas($DB); + $SISTEMAS = SAMURAI_Sistema::getArraySistemasSeleccionar($DB); // }}} //AGREGO LOS ELEMENTOS DEL FORM {{{ $FORM->addElement ('header', 'cabecera', 'Seleccione el sistema con el cual quiere trabajar');