X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/ed75c70e49cb855328abca7045d02de6d81ecd80..49a7c37c3efc3120d5a40d23d4541c75109136af:/lib/SAMURAI/Usuario.php diff --git a/lib/SAMURAI/Usuario.php b/lib/SAMURAI/Usuario.php index 015349e..8633bc2 100644 --- a/lib/SAMURAI/Usuario.php +++ b/lib/SAMURAI/Usuario.php @@ -32,6 +32,7 @@ require_once 'MECON/Usuario.php'; // +X2C Class 207 :SAMURAI_Usuario /** * Clase para el manejo de los usuarios. +@see \ref page_samurai_html_usuario * * @access public */ @@ -76,6 +77,14 @@ class SAMURAI_Usuario { */ var $_perfiles; + /** + * Identificador del sistema en el cual se esta trabajando. + * + * @var int $idSistema + * @access protected + */ + var $_idSistema; + /** * Gets Login. * @@ -176,14 +185,16 @@ class SAMURAI_Usuario { * * @param SAMURAI_DB &$db Objeto conexion. * @param string $login Login del usuario + * @param int $idSistema Identificador del sistema en el cual se esta trabajando * * @return void * @access public */ - function SAMURAI_Usuario(&$db, $login = null) // ~X2C + function SAMURAI_Usuario(&$db, $login = null, $idSistema = null) // ~X2C { $this->_db = $db; $this->setLogin($login); + $this->_idSistema = $idSistema; if (!is_null($login)) { $tmp =& new MECON_Usuario(null, $login); $this->setNrodoc($tmp->getDni()); @@ -266,7 +277,7 @@ class SAMURAI_Usuario { { $rta = array (); foreach (SAMURAI_Usuario::_getLoginUsuarios($db, $id_sistema) as $login) { - $tmp = new SAMURAI_Usuario($db,$login); + $tmp = new SAMURAI_Usuario($db, $login, $id_sistema); array_push($rta, $tmp); } return $rta; @@ -286,11 +297,13 @@ class SAMURAI_Usuario { $tmp = $sql['obtener_perfiles_usuario']; $dbh = $this->_db->prepare($tmp); - $res = $this->_db->execute($dbh,array($this->getLogin(), $_SESSION['samurai']['id_sistema'])); + $res = $this->_db->execute($dbh,array($this->getLogin(), + $this->_idSistema)); $rta = array(); while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { - $tmp = new SAMURAI_Perfil($this->_db, $re['id_perfil']); + $tmp = new SAMURAI_Perfil($this->_db, $re['id_perfil'], + $this->_idSistema); $rta[] = $tmp->getId(); } $this->setPerfiles($rta); @@ -334,12 +347,12 @@ class SAMURAI_Usuario { function _grabarDb() // ~X2C { $datos = array ('login', 'id_perfil', 'id_sistema', 'responsable'); - $re = $this->_db->autoPrepare('perfil_sist_usuario', $datos, DB_AUTOQUERY_INSERT); + $re = $this->_db->autoPrepare('samurai.perfil_sist_usuario', $datos, DB_AUTOQUERY_INSERT); foreach ($this->getPerfiles() as $perfil) { $datos = array ($this->getLogin(), $perfil, - $_SESSION['samurai']['id_sistema'], - $_SESSION['samurai']['login']); + $this->_idSistema, + $_SESSION['usuario']); $res = $this->_db->execute($re, $datos); if (PEAR::isError($res)) { return $res; @@ -360,7 +373,7 @@ class SAMURAI_Usuario { $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); $tmp = $sql['borrar']; $dbh = $this->_db->prepare($tmp); - $tmp = array ($this->getLogin(), $_SESSION['samurai']['id_sistema']); + $tmp = array ($this->getLogin(), $this->_idSistema); return $this->_db->execute($dbh,$tmp); } // -X2C @@ -416,7 +429,8 @@ class SAMURAI_Usuario { $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); $tmp = $sql['verificar_login2']; $dbh = $this->_db->prepare($tmp); - $res = $this->_db->execute($dbh,array($this->getLogin(), $_SESSION['samurai']['id_sistema'])); + $res = $this->_db->execute($dbh,array($this->getLogin(), + $this->_idSistema)); $re = $res->fetchRow(DB_FETCHMODE_ASSOC); if ($re['login']) { return new PEAR_Error('El usuario seleccionado ya esta cargado. Modifique sus opciones.'); @@ -449,9 +463,6 @@ class SAMURAI_Usuario { if (PEAR::isError($tmp)) { return $tmp; } - else { - return true; - } } else { return new PEAR_Error('Usuario no reconocido.
Recuerde que éste debe haberse logueado previamente a Intranet'); @@ -472,5 +483,41 @@ class SAMURAI_Usuario { } // -X2C + // +X2C Operation 396 + /** + * Devuelve la informacion completa del usuario. Sistemas a los que esta asignado, perfiles que tiene dentro de cada sistema y permisos. + * + * @return mixed + * @access public + */ + function informacionGeneral() // ~X2C + { + $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true); + $tmp = $sql['obtener_informacion']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh,array($this->getLogin())); + + if (PEAR::isError($res)) { + return $res; + } + + $rta = array(); + + while ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { + $rta[$re['id_sistema']]['nombre_sistema'] = $re['nombre_sistema']; + $rta[$re['id_sistema']]['perfiles'][$re['id_perfil']]['desc_perfil'] = + $re['desc_perfil']; + + $rta[$re['id_sistema']]['perfiles'][$re['id_perfil']]['permisos'][$re['id_permiso']] + [$re['observaciones']]['desc_permiso'] = $re['desc_permiso']; + + $rta[$re['id_sistema']]['perfiles'][$re['id_perfil']]['permisos'][$re['id_permiso']] + [$re['observaciones']]['observaciones'] = $re['observaciones']; + } + + return $rta; + } + // -X2C + } // -X2C Class :SAMURAI_Usuario ?> \ No newline at end of file