[Pkg-owncloud-commits] [owncloud-client] 68/120: Account: Save accepted SSL certs immediatly #3617

Sandro Knauß hefee-guest at moszumanska.debian.org
Mon Aug 24 00:02:46 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit 38b8508f15f1e2790722c9c437e5cd3e6fd4dc4b
Author: Markus Goetz <markus at woboq.com>
Date:   Fri Aug 14 11:31:01 2015 +0200

    Account: Save accepted SSL certs immediatly #3617
---
 src/gui/accountmanager.cpp | 11 +++++++++++
 src/gui/accountmanager.h   |  3 +++
 src/libsync/account.cpp    |  1 +
 src/libsync/account.h      |  3 +++
 4 files changed, 18 insertions(+)

diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp
index a90ab9e..1ef1935 100644
--- a/src/gui/accountmanager.cpp
+++ b/src/gui/accountmanager.cpp
@@ -129,6 +129,14 @@ void AccountManager::save(bool saveCredentials)
     }
 }
 
+void AccountManager::wantsAccountSavedSlot(AccountPtr a)
+{
+    auto settings = Account::settingsWithGroup(QLatin1String(accountsC));
+    settings->beginGroup(a->id());
+    save(a, *settings, true);
+    settings->endGroup();
+}
+
 void AccountManager::save(const AccountPtr& acc, QSettings& settings, bool saveCredentials)
 {
     settings.setValue(QLatin1String(urlC), acc->_url.toString());
@@ -206,6 +214,9 @@ AccountState *AccountManager::addAccount(const AccountPtr& newAccount)
     }
     newAccount->_id = id;
 
+    QObject::connect(newAccount.data(), SIGNAL(wantsAccountSaved(AccountPtr)),
+            this, SLOT(wantsAccountSavedSlot(AccountPtr)));
+
     AccountStatePtr newAccountState(new AccountState(newAccount));
     _accounts << newAccountState;
     emit accountAdded(newAccountState.data());
diff --git a/src/gui/accountmanager.h b/src/gui/accountmanager.h
index 033ec2a..eed8e43 100644
--- a/src/gui/accountmanager.h
+++ b/src/gui/accountmanager.h
@@ -78,6 +78,9 @@ private:
     bool isAccountIdAvailable(const QString& id) const;
     QString generateFreeAccountId() const;
 
+public slots:
+    void wantsAccountSavedSlot(AccountPtr a);
+
 
 Q_SIGNALS:
     void accountAdded(AccountState *account);
diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp
index 6909252..1c75a08 100644
--- a/src/libsync/account.cpp
+++ b/src/libsync/account.cpp
@@ -399,6 +399,7 @@ void Account::slotHandleSslErrors(QNetworkReply *reply , QList<QSslError> errors
     if (_sslErrorHandler->handleErrors(errors, reply->sslConfiguration(), &approvedCerts, sharedFromThis())) {
         QSslSocket::addDefaultCaCertificates(approvedCerts);
         addApprovedCerts(approvedCerts);
+        emit wantsAccountSaved(sharedFromThis());
         // all ssl certs are known and accepted. We can ignore the problems right away.
 //         qDebug() << out << "Certs are known and trusted! This is not an actual error.";
 
diff --git a/src/libsync/account.h b/src/libsync/account.h
index c64ea3f..4f98aa8 100644
--- a/src/libsync/account.h
+++ b/src/libsync/account.h
@@ -167,6 +167,9 @@ signals:
     /// Forwards from QNetworkAccessManager::proxyAuthenticationRequired().
     void proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*);
 
+    // e.g. when the approved SSL certificates changed
+    void wantsAccountSaved(AccountPtr acc);
+
 protected Q_SLOTS:
     void slotHandleSslErrors(QNetworkReply*,QList<QSslError>);
     void slotCredentialsFetched();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list