aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2016-01-26 12:24:27 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-26 09:50:32 -0800
commit8b7427c56d487a9f41afef01b6d7952e8e1e15af (patch)
treea715ce04ff0e31abaa4543a738d634462e74cedb /desktop-widgets
parent411f455291a547c782588ec8327ec5f8a34f243c (diff)
downloadsubsurface-8b7427c56d487a9f41afef01b6d7952e8e1e15af.tar.gz
Move CloudStorage out of the widgets
Cloud Storage is a non-gui based class, we currently use two different approaches for cloud storage, one on the desktop target and other on the mobile target, we should use only one. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/subsurfacewebservices.cpp102
-rw-r--r--desktop-widgets/subsurfacewebservices.h19
2 files changed, 2 insertions, 119 deletions
diff --git a/desktop-widgets/subsurfacewebservices.cpp b/desktop-widgets/subsurfacewebservices.cpp
index a11949122..4d17e76aa 100644
--- a/desktop-widgets/subsurfacewebservices.cpp
+++ b/desktop-widgets/subsurfacewebservices.cpp
@@ -9,6 +9,7 @@
#include "display.h"
#include "membuffer.h"
#include <errno.h>
+#include "subsurface-core/cloudstorage.h"
#include <QDir>
#include <QHttpMultiPart>
@@ -312,12 +313,6 @@ void WebServices::hideDownload()
ui.upload->show();
}
-QNetworkAccessManager *WebServices::manager()
-{
- static QNetworkAccessManager *manager = new QNetworkAccessManager(qApp);
- return manager;
-}
-
void WebServices::downloadTimedOut()
{
if (!reply)
@@ -1033,97 +1028,4 @@ QNetworkReply* UserSurveyServices::sendSurvey(QString values)
request.setRawHeader("User-Agent", userAgent.toUtf8());
reply = manager()->get(request);
return reply;
-}
-
-CloudStorageAuthenticate::CloudStorageAuthenticate(QObject *parent) :
- QObject(parent),
- reply(NULL)
-{
- userAgent = getUserAgent();
-}
-
-#define CLOUDURL QString(prefs.cloud_base_url)
-#define CLOUDBACKENDSTORAGE CLOUDURL + "/storage"
-#define CLOUDBACKENDVERIFY CLOUDURL + "/verify"
-#define CLOUDBACKENDUPDATE CLOUDURL + "/update"
-
-QNetworkReply* CloudStorageAuthenticate::backend(QString email, QString password, QString pin, QString newpasswd)
-{
- QString payload(email + " " + password);
- QUrl requestUrl;
- if (pin == "" && newpasswd == "") {
- requestUrl = QUrl(CLOUDBACKENDSTORAGE);
- } else if (newpasswd != "") {
- requestUrl = QUrl(CLOUDBACKENDUPDATE);
- payload += " " + newpasswd;
- } else {
- requestUrl = QUrl(CLOUDBACKENDVERIFY);
- payload += " " + pin;
- }
- QNetworkRequest *request = new QNetworkRequest(requestUrl);
- request->setRawHeader("Accept", "text/xml, text/plain");
- request->setRawHeader("User-Agent", userAgent.toUtf8());
- request->setHeader(QNetworkRequest::ContentTypeHeader, "text/plain");
- reply = WebServices::manager()->post(*request, qPrintable(payload));
- connect(reply, SIGNAL(finished()), this, SLOT(uploadFinished()));
- connect(reply, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(sslErrors(QList<QSslError>)));
- connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this,
- SLOT(uploadError(QNetworkReply::NetworkError)));
- return reply;
-}
-
-void CloudStorageAuthenticate::uploadFinished()
-{
- static QString myLastError;
-
- QString cloudAuthReply(reply->readAll());
- qDebug() << "Completed connection with cloud storage backend, response" << cloudAuthReply;
- if (cloudAuthReply == "[VERIFIED]" || cloudAuthReply == "[OK]") {
- prefs.cloud_verification_status = CS_VERIFIED;
- NotificationWidget *nw = MainWindow::instance()->getNotificationWidget();
- if (nw->getNotificationText() == myLastError)
- nw->hideNotification();
- myLastError.clear();
- } else if (cloudAuthReply == "[VERIFY]") {
- prefs.cloud_verification_status = CS_NEED_TO_VERIFY;
- } else if (cloudAuthReply == "[PASSWDCHANGED]") {
- free(prefs.cloud_storage_password);
- prefs.cloud_storage_password = prefs.cloud_storage_newpassword;
- prefs.cloud_storage_newpassword = NULL;
- emit passwordChangeSuccessful();
- return;
- } else {
- prefs.cloud_verification_status = CS_INCORRECT_USER_PASSWD;
- myLastError = cloudAuthReply;
- report_error("%s", qPrintable(cloudAuthReply));
- MainWindow::instance()->getNotificationWidget()->showNotification(get_error_string(), KMessageWidget::Error);
- }
- emit finishedAuthenticate();
-}
-
-void CloudStorageAuthenticate::uploadError(QNetworkReply::NetworkError error)
-{
- qDebug() << "Received error response from cloud storage backend:" << reply->errorString();
-}
-
-void CloudStorageAuthenticate::sslErrors(QList<QSslError> errorList)
-{
- if (verbose) {
- qDebug() << "Received error response trying to set up https connection with cloud storage backend:";
- Q_FOREACH (QSslError err, errorList) {
- qDebug() << err.errorString();
- }
- }
- QSslConfiguration conf = reply->sslConfiguration();
- QSslCertificate cert = conf.peerCertificate();
- QByteArray hexDigest = cert.digest().toHex();
- if (reply->url().toString().contains(prefs.cloud_base_url) &&
- hexDigest == "13ff44c62996cfa5cd69d6810675490e") {
- if (verbose)
- qDebug() << "Overriding SSL check as I recognize the certificate digest" << hexDigest;
- reply->ignoreSslErrors();
- } else {
- if (verbose)
- qDebug() << "got invalid SSL certificate with hex digest" << hexDigest;
- }
-}
+} \ No newline at end of file
diff --git a/desktop-widgets/subsurfacewebservices.h b/desktop-widgets/subsurfacewebservices.h
index 2b454ebc7..7b629db13 100644
--- a/desktop-widgets/subsurfacewebservices.h
+++ b/desktop-widgets/subsurfacewebservices.h
@@ -111,25 +111,6 @@ slots:
virtual void buttonClicked(QAbstractButton *button) { }
};
-class CloudStorageAuthenticate : public QObject {
- Q_OBJECT
-public:
- QNetworkReply* backend(QString email, QString password, QString pin = "", QString newpasswd = "");
- explicit CloudStorageAuthenticate(QObject *parent);
-signals:
- void finishedAuthenticate();
- void passwordChangeSuccessful();
-private
-slots:
- void uploadError(QNetworkReply::NetworkError error);
- void sslErrors(QList<QSslError> errorList);
- void uploadFinished();
-private:
- QNetworkReply *reply;
- QString userAgent;
-
-};
-
#ifdef __cplusplus
extern "C" {
#endif