]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/Usuario.php
Agrego un metodo estatico que devuelve un array de logins que cumplen con un filtro...
[mecon/meconlib.git] / lib / MECON / Usuario.php
index 5e1997a062380ed8a807e36cafb448b6d28d505b..ca99897ff146221e17b7ae915b25a6ace79236a6 100644 (file)
@@ -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 <manazar@mecon.gov.ar>
 -------------------------------------------------------------------------------
 $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,291 @@ 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';
+    
+    /**
+      * @var    string $tipo
+      * @access public
+      */
+    var $tipo;
+    
 
+   
+    /**
+      * @var    string $dsn
+      * @access public
+      */
+    var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario';
 
-    // ~X2C
 
-// +X2C Operation 138
     /**
      * @param  string $dni 
      *
      * @return void
      * @access public
      */
-    function ArmarconDNI($dni) // ~X2C
-  {
+    function ArmarconDNI($dni) 
+    {
         $db = DB::connect($this->dsn);
-        if (DB::isError($db)) 
-        {
+        if (DB::isError($db)) {
             die ($db->getMessage("No pudo conectarse a la base"));
-        }
-        else
-        {
+        } else {
             $sql = "SELECT login,nombre
-                    from Usuario
-                    where dni = $dni";
+                   from Usuario
+                   where dni = $dni";
             $result = $db->query($sql);
 
-            if ($result->NumRows()>0){
+            if ($result->NumRows()>0) {
                 $row = $result->fetchRow();
                 $login = $row[0];
                 $nombre = $row[1];
                 $this->login=$login;
                 $this->nombre=$nombre;
                 $this->dni=$dni;
-            else {
+            else {
                 die ('El dni '.$dni.' no existe, debe loguearse al
-                        menos una vez a la intranet.');
+                     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)) 
-        {
+        if (DB::isError($db)) {
             die ($db->getMessage("No pudo conectarse a la base"));
-        }
-        else
-        {
-            
+        } else {
+
             //$login = ereg_replace ("@", "\\\@", $login);
             $sql = "SELECT dni,nombre
-                    from Usuario
-                    where login = '$login'";
+                   from Usuario
+                   where login = '$login'";
 
             $result = $db->query($sql);
-           
-            if ($result->NumRows()>0){
+
+            if ($result->NumRows()>0) {
                 $row = $result->fetchRow();
                 $dni = $row[0];
                 $nombre = $row[1];
                 $this->dni=$dni;
                 $this->nombre=$nombre;
                 $this->login=$login;
-            }
-            else {
+            } else {
                 die ('El usuario '.$login.' no existe, debe loguearse al
-                        menos una vez a la intranet.');
+                     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($dni = NULL, $login = NULL) 
+    {
+        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
      * @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);
+    function Insertar_Usuario($dni = NULL, $login = NULL, $nombre = NULL) 
+    {
+        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
+    }
 
-// +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;
+    }
+
 
-    // +X2C Operation 137
     /**
      * @return string
      * @access public
      */
-    function getLogin() // ~X2C
-  {
-      return $this->login;
-  }
-  // -X2C
+    function getNombre()
+    {
+        return $this->nombre;
+    }
 
-    // +X2C Operation 138
     /**
      * @return string
      * @access public
      */
-    function getNombre() // ~X2C
-  {
-      return $this->nombre;
-  }
-  // -X2C
+    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($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
 
-} // -X2C Class :MECON_Usuario
-?>
\ No newline at end of file
+    /**
+      * Verifica si el login pasado por parametro es valido
+      *
+      * @param string $login Login a verificar
+      *
+      * @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;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 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, u.nombre FROM usuario.Usuarios as u 
+                WHERE ";
+
+        if ($login) {
+            $sql.= ' u.login LIKE \'%'.$login.'%\''
+        }
+        else {
+            $sql.= ' u.nombre LIKE \'%'.$nombre.'%\''
+        }
+        $result = $db->query($sql);
+        if (PEAR::isError($result)) {
+            return $result;
+        }
+        return $result;
+    }
+} 
+?>