[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