From 35dc97263ea8ab3af79406a00b8896e55c93d9b3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Fri, 15 Aug 2003 20:12:33 +0000 Subject: [PATCH] Ahora Usuario.php utiliza MECON_Usuario --- doc/uml/Samurai.xmi | 61 +++++++++++++-------------- lib/SAMURAI/Perfil.php | 2 +- lib/SAMURAI/Perm.php | 4 +- lib/SAMURAI/Usuario.php | 69 +++++++++++++++---------------- lib/SAMURAI/Usuario/consultas.ini | 5 ++- sistema/local_lib/prepend.php | 4 +- 6 files changed, 72 insertions(+), 73 deletions(-) diff --git a/doc/uml/Samurai.xmi b/doc/uml/Samurai.xmi index 676ad83..da69b94 100644 --- a/doc/uml/Samurai.xmi +++ b/doc/uml/Samurai.xmi @@ -4,12 +4,13 @@ umbrello uml modeller http://uml.sf.net 1.1.5 + UnicodeUTF8 - + - + @@ -243,8 +244,8 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> +Se puede pasar parámetros variables con un identificador de permiso o un array, por ejemplo: $perm->tiene(1, 4, array(2, 5, 67), 12); Si tiene algún permiso devuelve true. +Si no se pasa ningún párametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual." name="tiene" static="0" scope="200" /> @@ -260,14 +261,14 @@ x2c:set" name="sistema" static="0" scope="202" /> - + - - - - - - + + + + + + @@ -277,7 +278,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -289,7 +290,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -302,8 +303,8 @@ x2c:set" name="sistema" static="0" scope="202" /> - - + + @@ -316,7 +317,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + @@ -328,21 +329,21 @@ x2c:set" name="sistema" static="0" scope="202" /> - - + + - + - - - - - - - + + + + + + + @@ -352,15 +353,15 @@ x2c:set" name="sistema" static="0" scope="202" /> - + - - + + @@ -484,7 +485,7 @@ x2c:set" name="sistema" static="0" scope="202" /> - + diff --git a/lib/SAMURAI/Perfil.php b/lib/SAMURAI/Perfil.php index 445c01a..acbce4e 100644 --- a/lib/SAMURAI/Perfil.php +++ b/lib/SAMURAI/Perfil.php @@ -655,4 +655,4 @@ class SAMURAI_Perfil { } // -X2C Class :SAMURAI_Perfil -?> +?> \ No newline at end of file diff --git a/lib/SAMURAI/Perm.php b/lib/SAMURAI/Perm.php index b1b0805..44b84a0 100644 --- a/lib/SAMURAI/Perm.php +++ b/lib/SAMURAI/Perm.php @@ -93,8 +93,8 @@ class SAMURAI_Perm { // +X2C Operation 381 /** * Verifica si tiene un permiso. -Se puede pasar par?etros variables con un identificador de permiso o un array, por ejemplo: $perm->tiene(1, 4, array(2, 5, 67), 12); Si tiene algn permiso devuelve true. -Si no se pasa ningn p?ametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual. +Se puede pasar parámetros variables con un identificador de permiso o un array, por ejemplo: $perm->tiene(1, 4, array(2, 5, 67), 12); Si tiene algún permiso devuelve true. +Si no se pasa ningún párametro ($perm->tiene()), devuelve true si tiene un permiso (al menos uno) en el sistema actual. * * @return bool * @access public diff --git a/lib/SAMURAI/Usuario.php b/lib/SAMURAI/Usuario.php index 96b7847..38840f7 100644 --- a/lib/SAMURAI/Usuario.php +++ b/lib/SAMURAI/Usuario.php @@ -26,6 +26,7 @@ require_once 'PEAR.php'; require_once 'Perfil.php'; +require_once 'MECON/Usuario.php'; // +X2C Class 207 :SAMURAI_Usuario @@ -184,6 +185,9 @@ class SAMURAI_Usuario { $this->_db = $db; $this->setLogin($login); if (!is_null($login)) { + $tmp =& new MECON_Usuario(null, $login); + $this->setNrodoc($tmp->getDni()); + $this->setNombre($tmp->getNombre()); $this->_obtenerDatosDb(); } } @@ -241,7 +245,7 @@ class SAMURAI_Usuario { //FORECHEO LO QUE ME DEVUELVA GET USUARIOS $rta = array (); foreach (SAMURAI_Usuario::getUsuarios($db, $id_sistema) as $Usuario) { - $rta[$permiso->getLogin()] = $permiso->getNombre(); + $rta[$Usuario->getLogin()] = $Usuario->getNombre(); } return $rta; } @@ -279,28 +283,12 @@ class SAMURAI_Usuario { function _obtenerDatosDb() // ~X2C { $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); - $tmp = $sql['obtener_datos_usuario'].$sql['obtener_datos_usuario3']; - $dbh = $this->_db->prepare($tmp); - $res = $this->_db->execute($dbh,array($this->getLogin())); - - if ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { - if (isset($re['nrodoc'])) { - $this->setNrodoc($re['nrodoc']); - } - else { - $this->setNrodoc(); - } - if (isset($re['nombre'])) { - $this->setNombre($re['nombre']); - } - else { - $this->setNombre(); - } - } + $tmp = $sql['obtener_perfiles_usuario']; $dbh = $this->_db->prepare($tmp); $res = $this->_db->execute($dbh,array($this->getLogin(), $_SESSION['samurai']['id_sistema'])); $rta = array(); + while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { $tmp = new SAMURAI_Perfil($this->_db, $re['id_perfil']); $rta[] = $tmp->getId(); @@ -400,15 +388,19 @@ class SAMURAI_Usuario { */ function verificarLogin() // ~X2C { - $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); - $tmp = $sql['verificar_login']; - $dbh = $this->_db->prepare($tmp); - $res = $this->_db->execute($dbh,array($this->getLogin())); - $re = $res->fetchRow(DB_FETCHMODE_ASSOC); - if ($re['cuenta'] == 0) { + $usu = new MECON_Usuario(); + $tmp = $usu->verificarLogin($this->getLogin()); + if ($tmp) { + if (PEAR::isError($tmp)) { + return $tmp; + } + else { + return true; + } + } + else { return new PEAR_Error('Usuario no reconocido.
Recuerde que éste debe haberse logueado previamente a Intranet'); } - return 1; } // -X2C @@ -450,16 +442,21 @@ class SAMURAI_Usuario { function asociarPerfil(&$db, $login, $id_perfil, $id_sistema, $responsable) // ~X2C { $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); - - //Verifico que el usuario exista - $tmp = $sql['verificar_login']; - $dbh = $db->prepare($tmp); - $res = $db->execute($dbh,array($login)); - $re = $res->fetchRow(DB_FETCHMODE_ASSOC); - if ($re['cuenta'] == 0) { - return new PEAR_Error('Usuario no reconocido.'); - } + $usu = new MECON_Usuario(); + $tmp = $usu->verificarLogin($login()); + if ($tmp) { + if (PEAR::isError($tmp)) { + return $tmp; + } + else { + return true; + } + } + else { + return new PEAR_Error('Usuario no reconocido.
Recuerde que éste debe haberse logueado previamente a Intranet'); + } + //Asocio el perfil con el usuario en perfil_sist_usuario $datos = array ('login' => $login, 'id_perfil' => $id_perfil, @@ -476,4 +473,4 @@ class SAMURAI_Usuario { // -X2C } // -X2C Class :SAMURAI_Usuario -?> \ No newline at end of file +?> diff --git a/lib/SAMURAI/Usuario/consultas.ini b/lib/SAMURAI/Usuario/consultas.ini index 14ec9ed..77acd37 100644 --- a/lib/SAMURAI/Usuario/consultas.ini +++ b/lib/SAMURAI/Usuario/consultas.ini @@ -3,10 +3,11 @@ -obtener_datos_usuario = " SELECT login, nrodoc, nombre FROM samurai.usuario " +obtener_datos_usuario = " SELECT login FROM samurai.perfil_sist_usuario " +obtener_datos_usuario2 = " SELECT DISTINCT login FROM samurai.perfil_sist_usuario WHERE id_sistema = ? " obtener_datos_usuario3 = " WHERE login = ? " obtener_datos_usuario4 = " ORDER BY login" -obtener_datos_usuario2 = " SELECT DISTINCT u.login as login FROM samurai.usuario as u, samurai.perfil_sist_usuario as psu WHERE u.login = psu.login AND id_sistema = ? " + obtener_perfiles_usuario = " SELECT id_perfil FROM samurai.perfil_sist_usuario WHERE login = ? AND id_sistema = ?" verificar_login = " SELECT count(*) as cuenta FROM samurai.usuario WHERE login = ?" diff --git a/sistema/local_lib/prepend.php b/sistema/local_lib/prepend.php index 01b8b8c..4ee9c83 100644 --- a/sistema/local_lib/prepend.php +++ b/sistema/local_lib/prepend.php @@ -1,8 +1,8 @@