X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/3456f1f179ee9c0844e2a76e9ffba588c13dce04..363434e2910ed025fc81935a24d517ca2aea43c1:/lib/MECON/Usuario.php?ds=inline diff --git a/lib/MECON/Usuario.php b/lib/MECON/Usuario.php index 5e1997a..0558d8a 100644 --- a/lib/MECON/Usuario.php +++ b/lib/MECON/Usuario.php @@ -4,12 +4,12 @@ meconlib ------------------------------------------------------------------------------- This file is part of meconlib. - + meconlib is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + meconlib is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -23,10 +23,10 @@ Autor: Manuel Nazar ------------------------------------------------------------------------------- $Id: Usuario.php 242 2003-08-11 18:02:16Z manazar $ -----------------------------------------------------------------------------*/ - +require_once 'MECON/Agente.php'; + require_once 'DB.php'; -// +X2C Class 131 :MECON_Usuario /** * @access public */ @@ -37,237 +37,265 @@ class MECON_Usuario { */ var $dni; - /** - * @var string $login - * @access public - */ + /** + * @var string $login + * @access public + */ var $login; + + /** + * @var string $nivelygrado + * @access public + */ + var $nivelygrado; + + /** + * @var string $codep + * @access public + */ + var $codep; + - /** - * @var string $nombre - * @access public - */ + /** + * @var string $nombre + * @access public + */ var $nombre; - /** - * @var string $dsn - * @access public - */ - var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario'; - - - // ~X2C + + /** + * @var string $tipo + * @access public + */ + var $tipo; -// +X2C Operation 138 + /** + * @protected + */ + var $_db; + /** * @param string $dni * * @return void * @access public */ - function ArmarconDNI($dni) // ~X2C - { - $db = DB::connect($this->dsn); - if (DB::isError($db)) - { - die ($db->getMessage("No pudo conectarse a la base")); - } - 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.'); - } - + function ArmarconDNI($dni) + { + $sql = "SELECT login,nombre + from usuario.Usuario + where dni = $dni"; + $result = $this->_db->query($sql); + if (DB::isError($result)) { + trigger_error($result->getMessage(), E_USER_ERROR); + } 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 { + trigger_error('El dni '.$dni.' no existe, debe loguearse al + menos una vez a la intranet.'); } - } - // -X2C - + } -// +X2C Operation 136 /** * @param string $login * * @return void * @access public */ - function ArmarconLOGIN($login) // ~X2C - { - $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'"; + function ArmarconLOGIN($login) + { + //$login = ereg_replace ("@", "\\\@", $login); + $sql = "SELECT dni,nombre + from usuario.Usuario + where login = '$login'"; + + $result = $this->_db->query($sql); - $result = $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)) { + trigger_error($result->getMessage(), E_USER_ERROR); + } elseif ($result->NumRows()>0) { + $row = $result->fetchRow(DB_FETCHMODE_ORDERED); + $this->dni = $row[0]; + $this->nombre = $row[1]; + $this->login = $login; + } else { + trigger_error('El usuario '.$login.' no existe, debe loguearse al + menos una vez a la intranet.'); } - } - // -X2C + } - // +X2C Operation 135 /** * @param int $dni * * @return void * @access public */ - function MECON_Usuario($dni = NULL, $login = NULL) // ~X2C - { - if(! is_null($dni)) - { + function MECON_Usuario($db, $dni = null, $login = null) + { + $this->_db = $db; + if(! is_null($dni)) { $this->ArmarconDNI($dni); $this->buscarUsuarioDNI($dni); - } - if(! is_null($login)) - { + } + if(! is_null($login)) { $this->ArmarconLOGIN($login); $this->buscarUsuarioDNI($this->getDni()); - } - - } - // -X2C + } + + } - // +X2C Operation 136 /** * @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) // ~X2C - { - 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); - } - } - } - // -X2C + function Insertar_Usuario($dni, $login, $nombre) + { + $sql = "REPLACE INTO usuario.Usuario (login,dni,nombre) + values ('$login',$dni,'$nombre')"; + return $this->_db->query($sql); + } -// +X2C Operation 136 /** * @return int * @access public */ - function getDni() // ~X2C - { - return $this->dni; - } - // -X2C + function getDni() + { + return $this->dni; + } + + /** + * @return string + * @access public + */ + function getLogin() + { + return $this->login; + } + + /** + * @return string + * @access public + */ + function getCodep() + { + return $this->codep; + } + + + /** + * @return string + * @access public + */ + function getNombre() + { + return $this->nombre; + } - // +X2C Operation 137 /** * @return string * @access public */ - function getLogin() // ~X2C - { - return $this->login; - } - // -X2C + function getNivelygrado() + { + return $this->nivelygrado; + } + - // +X2C Operation 138 /** * @return string * @access public */ - function getNombre() // ~X2C - { - return $this->nombre; - } - // -X2C + function getTipo() + { + return $this->tipo; + } + - - // +X2C Operation 154 /** * @param int $dni * * @return void * @access public */ - function buscarUsuarioDNI($dni) // ~X2C + function buscarUsuarioDNI($dni) { - $this->dni = $dni; - $dsn = 'mysql://intranet:intranet@intranet-db/novedades'; - $db = DB::connect($dsn); - if (DB::isError($db)) die ($db->getMessage("No pudo conectarse a la base")); - $sql = "SELECT nombre - FROM web003 - WHERE nrodoc = $dni"; - $result = $db->query($sql); - if(DB::isError($result)) { - die($result->getMessage("query mal hecho")); - } - if($result->numRows() > 0) - { - $row = $result->fetchRow(); - $nombre = $row[0]; - $this->nombre = $nombre; - } - else - { - $dsn = 'mysql://intranet:intranet@intranet-db/Contratados'; - $db = DB::connect($dsn); - if (DB::isError($db)) die ($db->getMessage("No pudo conectarse a la base")); - $sql = "SELECT nombre - FROM Contratados - WHERE nrodoc = $dni"; - $result = $db->query($sql); - if(DB::isError($result)) - die($result->getMessage("query mal hecho")); - if($result->numRows() > 0) - { - $row = $result->fetchRow(); - $nombre = $row[0]; - $this->nombre = $nombre; - } - else - return false; - } - return true; + $MECON_Agente= & new MECON_Agente($dni); + $this->dni = $dni; + $nombre = $MECON_Agente->getNombre(); + $this->nombre = $nombre; + $codep= $MECON_Agente->getDependencia(); + $this->codep = $codep; + $tipo= $MECON_Agente->getTipo(); + $this->tipo = $tipo; + $this->nivelygrado=""; + if (isset($MECON_Agente->datos['nivel'])) + { + $this->nivelygrado= $MECON_Agente->datos['nivel'].$MECON_Agente->datos['grado']; + } + + } + + /** + * Verifica si el login pasado por parametro es valido + * + * @param string $login Login a verificar + * + * @return mixed + * @access public + */ + function verificarLogin($login) { + $login = $this->_db->quote($login); + $sql = "SELECT count(*) as usuario.cuenta FROM usuario.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; + } + return false; } - // -X2C -} // -X2C Class :MECON_Usuario -?> \ No newline at end of file + /** + * Devuelve un array de logins con aquellos que cumplan con algun requisito + * del filtro. + * + * @param DB &$db Base de Datos + * @param string $login Login a filtrar. (Puede ser completo o una parte de el) + * @param string $nombre Nombre a filtrar. + * + * @return mixed + * @access public + * @static + */ + function filtrarUsuarios(&$db, $login, $nombre) { + if ($login && $nombre) { + return new PEAR_Error('Solo debe ingresarse una opcion de filtro, + login o nombre, a la vez.'); + } + $sql = "SELECT u.login as login, u.nombre as nombre FROM usuario.Usuario as u + WHERE "; + + if ($login) { + $sql.= ' u.login LIKE \'%'.$login.'%\''; + } + else { + $sql.= ' u.nombre LIKE \'%'.$nombre.'%\''; + } + $sql.= 'ORDER BY u.login'; + + $db->setFetchMode(DB_FETCHMODE_ASSOC); + $result = $db->query($sql); + return $result; + } +} +?>