X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/3608c37d4d11ce577e26c58a81d127c860b6d08f..a2a6a5f4d1500867db74046d8937f63ad3a7e82f:/lib/MECON/Usuario.php?ds=inline diff --git a/lib/MECON/Usuario.php b/lib/MECON/Usuario.php index f906b9f..8d4b9a2 100644 --- a/lib/MECON/Usuario.php +++ b/lib/MECON/Usuario.php @@ -26,6 +26,7 @@ $Id: Usuario.php 242 2003-08-11 18:02:16Z manazar $ require_once 'MECON/Agente.php'; require_once 'DB.php'; +require_once 'PEAR.php'; /** * @access public @@ -68,16 +69,12 @@ class MECON_Usuario { * @access public */ var $tipo; - - /** - * @var string $dsn - * @access public - */ - var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario'; - - + * @protected + */ + var $_db; + /** * @param string $dni * @@ -86,27 +83,22 @@ class MECON_Usuario { */ function ArmarconDNI($dni) { - $db = DB::connect($this->dsn); - if (DB::isError($db)) { - die ($db->getMessage("No pudo conectarse a la base")); + $sql = "SELECT login,nombre + from usuario.Usuario + where dni = $dni"; + $result = $this->_db->query($sql); + if (DB::isError($result)) { + return $result; + } elseif ($result->NumRows()>0) { + $row = $result->fetchRow(DB_FETCHMODE_ORDERED); + $login = $row[0]; + $nombre = $row[1]; + $this->login=$login; + $this->nombre=$nombre; + $this->dni=$dni; } else { - $sql = "SELECT login,nombre - from Usuario - where dni = $dni"; - $result = $db->query($sql); - - if ($result->NumRows()>0) { - $row = $result->fetchRow(); - $login = $row[0]; - $nombre = $row[1]; - $this->login=$login; - $this->nombre=$nombre; - $this->dni=$dni; - } else { - die ('El dni '.$dni.' no existe, debe loguearse al - menos una vez a la intranet.'); - } - + return new PEAR_Error ('El dni '.$dni.' no existe, debe loguearse al + menos una vez a la intranet.'); } } @@ -118,29 +110,23 @@ class MECON_Usuario { */ function ArmarconLOGIN($login) { - $db = DB::connect($this->dsn); - if (DB::isError($db)) { - die ($db->getMessage("No pudo conectarse a la base")); - } else { - - //$login = ereg_replace ("@", "\\\@", $login); - $sql = "SELECT dni,nombre - from Usuario - where login = '$login'"; + //$login = ereg_replace ("@", "\\\@", $login); + $sql = "SELECT dni,nombre + from usuario.Usuario + where login = '$login'"; - $result = $db->query($sql); + $result = $this->_db->query($sql); - if ($result->NumRows()>0) { - $row = $result->fetchRow(); - $dni = $row[0]; - $nombre = $row[1]; - $this->dni=$dni; - $this->nombre=$nombre; - $this->login=$login; - } else { - die ('El usuario '.$login.' no existe, debe loguearse al - menos una vez a la intranet.'); - } + if (DB::isError($result)) { + return $result; + } elseif ($result->NumRows()>0) { + $row = $result->fetchRow(DB_FETCHMODE_ORDERED); + $this->dni = $row[0]; + $this->nombre = $row[1]; + $this->login = $login; + } else { + return new PEAR_Error ('El usuario '.$login.' no existe, debe loguearse al + menos una vez a la intranet.'); } } @@ -150,8 +136,9 @@ class MECON_Usuario { * @return void * @access public */ - function MECON_Usuario($dni = NULL, $login = NULL) + function MECON_Usuario($db, $dni = null, $login = null) { + $this->_db = $db; if(! is_null($dni)) { $this->ArmarconDNI($dni); $this->buscarUsuarioDNI($dni); @@ -166,21 +153,14 @@ class MECON_Usuario { /** * @param int $uario * - * @return void + * @return lo que devuelve el query (DB_Result o DB_Error). * @access public */ - function Insertar_Usuario($dni = NULL, $login = NULL, $nombre = NULL) + function Insertar_Usuario($dni, $login, $nombre) { - if((! is_null($dni)) && (! is_null($login)) && (! is_null($nombre))) { - $db = DB::connect($this->dsn); - if (DB::isError($db)) { - die ($db->getMessage("No pudo conectarse a la base")); - } else { - $sql = "REPLACE INTO Usuario (login,dni,nombre) - values ('$login',$dni,'$nombre')"; - $result = $db->query($sql); - } - } + $sql = "REPLACE INTO usuario.Usuario (login,dni,nombre) + values ('$login',$dni,'$nombre')"; + return $this->_db->query($sql); } /** @@ -248,7 +228,7 @@ class MECON_Usuario { */ function buscarUsuarioDNI($dni) { - $MECON_Agente= & new MECON_Agente($dni); + $MECON_Agente= & new MECON_Agente($this->_db, $dni); $this->dni = $dni; $nombre = $MECON_Agente->getNombre(); $this->nombre = $nombre; @@ -272,21 +252,16 @@ class MECON_Usuario { * @return mixed * @access public */ - function verificarLogin($login = null) { - if ($login) { - $db = DB::connect($this->dsn); - if (PEAR::isError($db)) { - return $db; - } - $sql = "SELECT count(*) as cuenta FROM Usuario WHERE login = '$login'"; - $result = $db->query($sql); - if (PEAR::isError($result)) { - return $result; - } - $row = $result->fetchRow(DB_FETCHMODE_ASSOC); - if ($row['cuenta'] != 0) { - return true; - } + function verificarLogin($login) { + $sql = "SELECT count(*) as cuenta FROM usuario.Usuario WHERE login = " + . $this->_db->quote($login) ; + $result = $this->_db->query($sql); + if (PEAR::isError($result)) { + return $result; + } + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if ($row['cuenta'] != 0) { + return true; } return false; } @@ -317,7 +292,8 @@ class MECON_Usuario { else { $sql.= ' u.nombre LIKE \'%'.$nombre.'%\''; } - + $sql.= 'ORDER BY u.login'; + $db->setFetchMode(DB_FETCHMODE_ASSOC); $result = $db->query($sql); return $result;