/** * @param email * @param password * @return Usuario */ Usuario* GestorUsuarios::login(QString email, QByteArray password) { QString error=""; //Obtengo el usuario con ese correo si no existe retorno NULL Usuario *user = gestorDB->cargarUsuario(email); if(user==NULL){ return NULL; } //Comparo las contraseñas if(password!=user->getPassword()) return NULL; else{ //Registro el inicio de sesión Auditoria* aud=new Auditoria(); aud->setFecha(QDateTime::currentDateTime().toString(Qt::ISODate)); aud->setPc(QHostInfo::localHostName()); QVector<Auditoria*> auditorias=user->getAuditorias(); auditorias.push_back(aud); user->setAuditorias(auditorias); //Guardo para que quede registrado el nuevo inicio de sesión gestorDB->saveUsuario(user); this->setActual(user); //retorno el usuario cargado return user; } }
/** * Devuelve los datos correspondientes al usuario con telefono igual al * recibido. */ void Servicio::consultarUsuarioOnline() { string telefono = this->getParametroIdMetodoGET(urlBaseUsuario); Usuario* user = Usuario::obtenerPorTelefono(telefono); string renovarToken = this->getParametro(keyRenovarToken, keyDefault); bool renovar = StringUtil::toBoolean(renovarToken); if (user->getId() != keyIdUsuarioNoEncontrado) { user->registrarUltimaConexion(); Json::Value respuesta; respuesta[keyNombre] = user->getNombre(); respuesta[keyPassword] = user->getPassword(); if(renovar){ respuesta[keyTokenSesion] = user->calcularTokenDeSesion(); }else{ respuesta[keyTokenSesion] = user->getToken(); } respuesta[keyEstadoDeConexion] = StringUtil::toString( user->getEstadoConexion()); respuesta[keyFotoDePerfil] = user->getFotoDePerfil(); respuesta["idUsuario"] = user->getId(); respuesta[keyLocalizacion] = user->getLocalizacion(); user->persistir(); this->responder(respuesta.toStyledString(), true); Loger::getLoger()->info( "Consulta del usuario " + user->getNombre() + " exitosa."); } else { string msj = "No se pudo obtener el estado del usuario con numero: " + this->getParametro(keyTelefono, keyDefault) + " ya que no se encuentra registrado en el sistema."; Loger::getLoger()->warn(msj); this->responder(msj, false); } Loger::getLoger()->guardarEstado(); delete user; }