示例#1
0
/**
 * @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;

}