-------------------------------------------------------------------------------
$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
*/
* @access public
*/
var $login;
+
+ /**
+ * @var string $nivelygrado
+ * @access public
+ */
+ var $nivelygrado;
+
+ /**
+ * @var string $codep
+ * @access public
+ */
+ var $codep;
+
/**
* @var string $nombre
* @access public
*/
var $nombre;
+
/**
- * @var string $dsn
+ * @var string $tipo
* @access public
*/
- var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario';
-
+ var $tipo;
- // ~X2C
-
- // +X2C Operation 138
+ /**
+ * @protected
+ */
+ var $_db;
+
/**
* @param string $dni
*
* @return void
* @access public
*/
- function ArmarconDNI($dni) // ~X2C
+ 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.');
}
}
- // -X2C
-
- // +X2C Operation 136
/**
* @param string $login
*
* @return void
* @access public
*/
- function ArmarconLOGIN($login) // ~X2C
+ 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.');
}
}
- // -X2C
- // +X2C Operation 135
/**
* @param int $dni
*
* @return void
* @access public
*/
- function MECON_Usuario($dni = NULL, $login = NULL) // ~X2C
+ function MECON_Usuario($db, $dni = null, $login = null)
{
+ $this->_db = $db;
if(! is_null($dni)) {
$this->ArmarconDNI($dni);
$this->buscarUsuarioDNI($dni);
}
}
- // -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
+ 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);
}
- // -X2C
- // +X2C Operation 136
/**
* @return int
* @access public
*/
- function getDni() // ~X2C
+ function getDni()
{
return $this->dni;
}
- // -X2C
- // +X2C Operation 137
/**
* @return string
* @access public
*/
- function getLogin() // ~X2C
+ function getLogin()
{
return $this->login;
}
- // -X2C
- // +X2C Operation 138
/**
* @return string
* @access public
*/
- function getNombre() // ~X2C
+ function getCodep()
+ {
+ return $this->codep;
+ }
+
+
+ /**
+ * @return string
+ * @access public
+ */
+ function getNombre()
{
return $this->nombre;
}
- // -X2C
+
+ /**
+ * @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)
{
+ $MECON_Agente= & new MECON_Agente($this->_db, $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;
+ $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'];
}
- return true;
+
}
- // -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
+ /**
+ * 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;
+ }
+}
?>