]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/Usuario.php
Se agrega una nueva mutacion (funcionalidad) a TablaDB. addRowsIcon ahora puede
[mecon/meconlib.git] / lib / MECON / Usuario.php
index 35b8ab4c845e96f9a903ea85fb869e4ef98a96d9..860658971dfd08de7f40f1dedc0ae414baa870ae 100644 (file)
@@ -26,8 +26,8 @@ $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
  */
@@ -69,98 +69,76 @@ class MECON_Usuario {
       * @access public
       */
     var $tipo;
-    
 
-   
     /**
-      * @var    string $dsn
-      * @access public
-      */
-    var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario';
-
-
-    // ~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.Usuario
+               where login = '$login'";
 
-            //$login = ereg_replace ("@", "\\\@", $login);
-            $sql = "SELECT dni,nombre
-                   from 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)) {
+            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);
@@ -171,107 +149,84 @@ class MECON_Usuario {
         }
 
     }
-    // -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 139
     /**
      * @return string
      * @access public
      */
-    function getCodep() // ~X2C
+    function getCodep() 
     {
         return $this->codep;
     }
-    // -X2C
 
 
-    // +X2C Operation 138
     /**
      * @return string
      * @access public
      */
-    function getNombre() // ~X2C
+    function getNombre()
     {
         return $this->nombre;
     }
-    // -X2C
 
-    // +X2C Operation 140
     /**
      * @return string
      * @access public
      */
-    function getNivelygrado() // ~X2C
+    function getNivelygrado() 
     {
         return $this->nivelygrado;
     }
-    // -X2C
 
 
-    // +X2C Operation 141
     /**
      * @return string
      * @access public
      */
-    function getTipo() // ~X2C
+    function getTipo() 
     {
         return $this->tipo;
     }
-    // -X2C
 
 
-    // +X2C Operation 154
     /**
      * @param  int $dni 
      *
      * @return void
      * @access public
      */
-    function buscarUsuarioDNI($dni) // ~X2C
+    function buscarUsuarioDNI($dni) 
     {
         $MECON_Agente= & new MECON_Agente($dni);
         $this->dni = $dni;
@@ -288,7 +243,6 @@ class MECON_Usuario {
         }
                                 
     }
-    // -X2C
 
     /**
       * Verifica si el login pasado por parametro es valido
@@ -298,24 +252,51 @@ 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;
     }
 
-} // -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;
+    }
+} 
 ?>