]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/Usuario.php
Para confirmar acciones.
[mecon/meconlib.git] / lib / MECON / Usuario.php
index 818a85e2a59c19ac7b47cbe78460025ccfbb3b9b..8d4b9a2f0d8e45f1ae174654fe59e3f540f84bbb 100644 (file)
@@ -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;
     }
@@ -308,7 +283,7 @@ class MECON_Usuario {
             return new PEAR_Error('Solo debe ingresarse una opcion de filtro,
                     login o nombre, a la vez.');
         }
-        $sql = "SELECT u.login, u.nombre FROM usuario.Usuarios as u 
+        $sql = "SELECT u.login as login, u.nombre as nombre FROM usuario.Usuario as u 
                 WHERE ";
 
         if ($login) {
@@ -317,6 +292,9 @@ 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;
     }