+ $tmp =& new MECON_Usuario($db, null, $login);
+ $this->setNrodoc($tmp->getDni());
+ $this->setNombre($tmp->getNombre());
+ $this->_obtenerDatosDb();
+ }
+ }
+ // -X2C
+
+ // +X2C Operation 365
+ /**
+ * Devuleve un array con los login's de los usuarios asociados al sistema
+ *
+ * @param SAMURAI_DB &$db Base de Datos
+ * @param int $id_sistema Identificador del sistema
+ *
+ * @return array(string)
+ * @access protected
+ * @static
+ */
+ function _getLoginUsuarios(&$db, $id_sistema = null) // ~X2C
+ {
+ //OBTENGO LOS LOGIN DE LA BASE
+ $consulta='';
+ $rta = array();
+ $tmp = array();
+ $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true);
+ if ($id_sistema) {
+ $consulta.= $sql['obtener_datos_usuario2'];
+ $tmp[] = $id_sistema;
+ }
+ else {
+ $consulta = $sql['obtener_datos_usuario'];
+ }
+ $consulta.= $sql['obtener_datos_usuario4'];
+ $dbh = $db->prepare($consulta);
+ $res = $db->execute($dbh, $tmp);
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ array_push($rta,$re['login']);
+ }
+ $res->free();
+ return $rta;
+ }
+ // -X2C
+
+ // +X2C Operation 366
+ /**
+ * Devuelve un array asociativo en donde la clave es el login y el valor es el nombre del usuario
+ *
+ * @param SAMURAI_DB &$db Base de Datos
+ * @param int $id_sistema Identificador del sistema
+ *
+ * @return array()
+ * @access public
+ * @static
+ */
+ function getArrayUsuarios(&$db, $id_sistema = null) // ~X2C
+ {
+ //FORECHEO LO QUE ME DEVUELVA GET USUARIOS
+ $rta = array ();
+ foreach (SAMURAI_Usuario::getUsuarios($db, $id_sistema) as $Usuario) {
+ $rta[$Usuario->getLogin()] = $Usuario->getNombre();
+ }
+ return $rta;
+ }
+ // -X2C
+
+ // +X2C Operation 367
+ /**
+ * Devuelve el array de usuarios
+ *
+ * @param SAMURAI_DB &$db Base de Datos
+ * @param int $id_sistema Identificador del sistema
+ *
+ * @return array(Permiso)
+ * @access public
+ * @static
+ */
+ function getUsuarios(&$db, $id_sistema = null) // ~X2C
+ {
+ $rta = array ();
+ foreach (SAMURAI_Usuario::_getLoginUsuarios($db, $id_sistema) as $login) {
+ $tmp = new SAMURAI_Usuario($db, $login, $id_sistema);
+ array_push($rta, $tmp);
+ }
+ return $rta;
+ }
+ // -X2C
+
+ // +X2C Operation 368
+ /**
+ * Obtiene de la base de datos la informacion del usuario
+ *
+ * @return void
+ * @access protected
+ */
+ function _obtenerDatosDb() // ~X2C
+ {
+ $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true);
+
+ $tmp = $sql['obtener_perfiles_usuario'];
+ $dbh = $this->_db->prepare($tmp);
+ $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'],
+ $this->_idSistema);
+ $rta[] = $tmp->getId();
+ }
+ $this->setPerfiles($rta);
+ }
+ // -X2C
+
+ // +X2C Operation 370
+ /**
+ * Modifica la base de datos segun accion
+ *
+ * @param string $accion Indica la accion a realizar
+ *
+ * @return mixed
+ * @access public
+ */
+ function guardarDatos($accion = 'grabar') // ~X2C
+ {
+ $accion = strtolower($accion);
+ switch ($accion) {
+ case 'grabar':
+ $res = $this->_grabarDb();
+ break;
+ case 'modificar':
+ $res = $this->_modificarDb();
+ break;
+ case 'eliminar':
+ $res = $this->_borrarDb();
+ break;
+ }
+ return $res;
+ }
+ // -X2C
+
+ // +X2C Operation 371
+ /**
+ * Graba en base la relacion
+ *
+ * @return mixed
+ * @access protected
+ */
+ function _grabarDb() // ~X2C
+ {
+ $datos = array ('login', 'id_perfil', 'id_sistema', 'responsable');
+ $re = $this->_db->autoPrepare('samurai.perfil_sist_usuario', $datos, DB_AUTOQUERY_INSERT);
+ foreach ($this->getPerfiles() as $perfil) {
+ $datos = array ($this->getLogin(),
+ $perfil,
+ $this->_idSistema,
+ $_SESSION['usuario']);
+ $res = $this->_db->execute($re, $datos);
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ }
+ }
+ // -X2C
+
+ // +X2C Operation 372
+ /**
+ * Borra de la base la relacion
+ *
+ * @return mixed
+ * @access protected
+ */
+ function _borrarDb() // ~X2C
+ {
+ $sql = parse_ini_file(dirname(__FILE__) . '/Usuario/consultas.ini', true);
+ $tmp = $sql['borrar'];
+ $dbh = $this->_db->prepare($tmp);
+ $tmp = array ($this->getLogin(), $this->_idSistema);
+ return $this->_db->execute($dbh,$tmp);
+ }
+ // -X2C
+
+ // +X2C Operation 373
+ /**
+ * Actualiza los datos de la relacion
+ *
+ * @return mixed
+ * @access protected
+ */
+ function _modificarDb() // ~X2C
+ {
+ $this->_borrarDb();
+ $this->_grabarDb();
+ }
+ // -X2C
+
+ // +X2C Operation 374
+ /**
+ * Verifica si el login actual es valido
+ *
+ * @return mixed
+ * @access public
+ */
+ function verificarLogin() // ~X2C
+ {
+ $usu = new MECON_Usuario($this->_db);
+ $tmp = $usu->verificarLogin($this->getLogin());
+ if ($tmp) {
+ if (PEAR::isError($tmp)) {
+ return $tmp;
+ }
+ else {
+ return true;
+ }