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.
-------------------------------------------------------------------------------
$Id: Usuario.php 242 2003-08-11 18:02:16Z manazar $
-----------------------------------------------------------------------------*/
-
+require_once 'MECON/Agente.php';
+
require_once 'DB.php';
+require_once 'PEAR.php';
-// +X2C Class 131 :MECON_Usuario
/**
* @access public
*/
*/
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)) {
+ 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 {
+ return new PEAR_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 = $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.');
- }
+ $result = $this->_db->query($sql);
+
+ 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.');
}
- }
- // -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;
+ }
- // +X2C Operation 137
/**
* @return string
* @access public
*/
- function getLogin() // ~X2C
- {
- return $this->login;
- }
- // -X2C
+ function getCodep()
+ {
+ return $this->codep;
+ }
+
- // +X2C Operation 138
/**
* @return string
* @access public
*/
- function getNombre() // ~X2C
- {
- return $this->nombre;
- }
- // -X2C
+ function getNombre()
+ {
+ return $this->nombre;
+ }
+
+ /**
+ * @return string
+ * @access public
+ */
+ function getNivelygrado()
+ {
+ return $this->nivelygrado;
+ }
+
+
+ /**
+ * @return string
+ * @access public
+ */
+ 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($this->_db, $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'];
+ }
+
}
- // -X2C
/**
* Verifica si el login pasado por parametro es valido
* @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;
}
-} // -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;
+ }
+}
+?>