1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
8 meconlib is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 meconlib is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: Thu Aug 11 15:17:11 2003
22 Autor: Manuel Nazar <manazar@mecon.gov.ar>
23 -------------------------------------------------------------------------------
24 $Id: Usuario.php 242 2003-08-11 18:02:16Z manazar $
25 -----------------------------------------------------------------------------*/
26 require_once 'MECON/Agente.php';
28 require_once 'DB.php';
47 * @var string $nivelygrado
78 var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/usuario';
87 function ArmarconDNI($dni)
89 $db = DB::connect($this->dsn);
90 if (DB::isError($db)) {
91 die ($db->getMessage("No pudo conectarse a la base"));
93 $sql = "SELECT login,nombre
96 $result = $db->query($sql);
98 if ($result->NumRows()>0) {
99 $row = $result->fetchRow();
103 $this->nombre=$nombre;
106 die ('El dni '.$dni.' no existe, debe loguearse al
107 menos una vez a la intranet.');
114 * @param string $login
119 function ArmarconLOGIN($login)
121 $db = DB::connect($this->dsn);
122 if (DB::isError($db)) {
123 die ($db->getMessage("No pudo conectarse a la base"));
126 //$login = ereg_replace ("@", "\\\@", $login);
127 $sql = "SELECT dni,nombre
129 where login = '$login'";
131 $result = $db->query($sql);
133 if ($result->NumRows()>0) {
134 $row = $result->fetchRow();
138 $this->nombre=$nombre;
141 die ('El usuario '.$login.' no existe, debe loguearse al
142 menos una vez a la intranet.');
153 function MECON_Usuario($dni = NULL, $login = NULL)
155 if(! is_null($dni)) {
156 $this->ArmarconDNI($dni);
157 $this->buscarUsuarioDNI($dni);
159 if(! is_null($login)) {
160 $this->ArmarconLOGIN($login);
161 $this->buscarUsuarioDNI($this->getDni());
172 function Insertar_Usuario($dni = NULL, $login = NULL, $nombre = NULL)
174 if((! is_null($dni)) && (! is_null($login)) && (! is_null($nombre))) {
175 $db = DB::connect($this->dsn);
176 if (DB::isError($db)) {
177 die ($db->getMessage("No pudo conectarse a la base"));
179 $sql = "REPLACE INTO Usuario (login,dni,nombre)
180 values ('$login',$dni,'$nombre')";
181 $result = $db->query($sql);
220 return $this->nombre;
227 function getNivelygrado()
229 return $this->nivelygrado;
249 function buscarUsuarioDNI($dni)
251 $MECON_Agente= & new MECON_Agente($dni);
253 $nombre = $MECON_Agente->getNombre();
254 $this->nombre = $nombre;
255 $codep= $MECON_Agente->getDependencia();
256 $this->codep = $codep;
257 $tipo= $MECON_Agente->getTipo();
259 $this->nivelygrado="";
260 if (isset($MECON_Agente->datos['nivel']))
262 $this->nivelygrado= $MECON_Agente->datos['nivel'].$MECON_Agente->datos['grado'];
268 * Verifica si el login pasado por parametro es valido
270 * @param string $login Login a verificar
275 function verificarLogin($login = null) {
277 $db = DB::connect($this->dsn);
278 if (PEAR::isError($db)) {
281 $sql = "SELECT count(*) as cuenta FROM Usuario WHERE login = '$login'";
282 $result = $db->query($sql);
283 if (PEAR::isError($result)) {
286 $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
287 if ($row['cuenta'] != 0) {
295 * Devuelve un array de logins con aquellos que cumplan con algun requisito
298 * @param DB &$db Base de Datos
299 * @param string $login Login a filtrar. (Puede ser completo o una parte de el)
300 * @param string $nombre Nombre a filtrar.
306 function filtrarUsuarios(&$db, $login, $nombre) {
307 if ($login && $nombre) {
308 return new PEAR_Error('Solo debe ingresarse una opcion de filtro,
309 login o nombre, a la vez.');
311 $sql = "SELECT u.login as login, u.nombre as nombre FROM usuario.Usuario as u
315 $sql.= ' u.login LIKE \'%'.$login.'%\'';
318 $sql.= ' u.nombre LIKE \'%'.$nombre.'%\'';
320 $sql.= 'ORDER BY u.login';
322 $db->setFetchMode(DB_FETCHMODE_ASSOC);
323 $result = $db->query($sql);