diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-01-24 11:25:46 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2018-01-24 11:25:46 +0100 |
commit | bf15c3977c27536e47578e8b0ecaedb852c5ff52 (patch) | |
tree | 55fc317d968fd7688a8961251c37fbdd059fbbfa | |
parent | f0d82e708e435f2d7f6d8e066481286bd023dff9 (diff) | |
download | kube-bf15c3977c27536e47578e8b0ecaedb852c5ff52.tar.gz kube-bf15c3977c27536e47578e8b0ecaedb852c5ff52.zip |
Fixed initial account login.
Because we ended up trying to load the resources before they even
existed (directly after the account was created), we ended up creating a
second set of unconfigured resources.
Storing the password by modifying the resource was an artifact of the
past anyways, and a login function results in a cleaner system and fixes
the problem at hand.
-rw-r--r-- | accounts/gmail/gmailsettings.cpp | 1 | ||||
-rw-r--r-- | accounts/imap/imapsettings.cpp | 1 | ||||
-rw-r--r-- | accounts/imap/qml/Login.qml | 5 | ||||
-rw-r--r-- | accounts/kolabnow/kolabnowsettings.cpp | 2 | ||||
-rw-r--r-- | accounts/kolabnow/qml/Login.qml | 4 | ||||
-rw-r--r-- | framework/src/domain/settings/accountsettings.cpp | 25 | ||||
-rw-r--r-- | framework/src/domain/settings/accountsettings.h | 7 |
7 files changed, 16 insertions, 29 deletions
diff --git a/accounts/gmail/gmailsettings.cpp b/accounts/gmail/gmailsettings.cpp index 681ee1d4..ab050661 100644 --- a/accounts/gmail/gmailsettings.cpp +++ b/accounts/gmail/gmailsettings.cpp | |||
@@ -38,7 +38,6 @@ void GmailSettings::save() | |||
38 | 38 | ||
39 | mSmtpServer = "smtps://smtp.gmail.com:465"; | 39 | mSmtpServer = "smtps://smtp.gmail.com:465"; |
40 | mSmtpUsername = mEmailAddress; | 40 | mSmtpUsername = mEmailAddress; |
41 | mSmtpPassword = mImapPassword; | ||
42 | 41 | ||
43 | saveAccount(); | 42 | saveAccount(); |
44 | saveImapResource(); | 43 | saveImapResource(); |
diff --git a/accounts/imap/imapsettings.cpp b/accounts/imap/imapsettings.cpp index a9749878..1f338e83 100644 --- a/accounts/imap/imapsettings.cpp +++ b/accounts/imap/imapsettings.cpp | |||
@@ -33,7 +33,6 @@ void ImapSettings::load() | |||
33 | 33 | ||
34 | void ImapSettings::save() | 34 | void ImapSettings::save() |
35 | { | 35 | { |
36 | mSmtpPassword = mImapPassword; | ||
37 | saveAccount(); | 36 | saveAccount(); |
38 | saveImapResource(); | 37 | saveImapResource(); |
39 | saveMailtransportResource(); | 38 | saveMailtransportResource(); |
diff --git a/accounts/imap/qml/Login.qml b/accounts/imap/qml/Login.qml index 14e13e89..c9304b0e 100644 --- a/accounts/imap/qml/Login.qml +++ b/accounts/imap/qml/Login.qml | |||
@@ -33,7 +33,7 @@ Item { | |||
33 | } | 33 | } |
34 | 34 | ||
35 | function login(){ | 35 | function login(){ |
36 | settings.save() | 36 | settings.login({accountSecret: pwField.text}) |
37 | } | 37 | } |
38 | 38 | ||
39 | GridLayout { | 39 | GridLayout { |
@@ -53,10 +53,7 @@ Item { | |||
53 | id: pwField | 53 | id: pwField |
54 | Layout.fillWidth: true | 54 | Layout.fillWidth: true |
55 | focus: true | 55 | focus: true |
56 | |||
57 | placeholderText: qsTr("Password of your IMAP account") | 56 | placeholderText: qsTr("Password of your IMAP account") |
58 | text: settings.imapPassword | ||
59 | onTextChanged: settings.imapPassword = text | ||
60 | } | 57 | } |
61 | } | 58 | } |
62 | } | 59 | } |
diff --git a/accounts/kolabnow/kolabnowsettings.cpp b/accounts/kolabnow/kolabnowsettings.cpp index fe4c8c48..03c59ede 100644 --- a/accounts/kolabnow/kolabnowsettings.cpp +++ b/accounts/kolabnow/kolabnowsettings.cpp | |||
@@ -39,11 +39,9 @@ void KolabnowSettings::save() | |||
39 | 39 | ||
40 | mSmtpServer = "smtps://smtp.kolabnow.com:587"; | 40 | mSmtpServer = "smtps://smtp.kolabnow.com:587"; |
41 | mSmtpUsername = mEmailAddress; | 41 | mSmtpUsername = mEmailAddress; |
42 | mSmtpPassword = mImapPassword; | ||
43 | 42 | ||
44 | mCardDavServer = "https://apps.kolabnow.com/addressbooks/" + mEmailAddress; | 43 | mCardDavServer = "https://apps.kolabnow.com/addressbooks/" + mEmailAddress; |
45 | mCardDavUsername = mEmailAddress; | 44 | mCardDavUsername = mEmailAddress; |
46 | mCardDavPassword = mImapPassword; | ||
47 | 45 | ||
48 | saveAccount(); | 46 | saveAccount(); |
49 | saveImapResource(); | 47 | saveImapResource(); |
diff --git a/accounts/kolabnow/qml/Login.qml b/accounts/kolabnow/qml/Login.qml index e416b089..856f8ba4 100644 --- a/accounts/kolabnow/qml/Login.qml +++ b/accounts/kolabnow/qml/Login.qml | |||
@@ -33,7 +33,7 @@ Item { | |||
33 | } | 33 | } |
34 | 34 | ||
35 | function login(){ | 35 | function login(){ |
36 | settings.save() | 36 | settings.login({accountSecret: pwField.text}) |
37 | } | 37 | } |
38 | 38 | ||
39 | GridLayout { | 39 | GridLayout { |
@@ -55,8 +55,6 @@ Item { | |||
55 | focus: true | 55 | focus: true |
56 | 56 | ||
57 | placeholderText: qsTr("Password of your Kolab Now account") | 57 | placeholderText: qsTr("Password of your Kolab Now account") |
58 | text: settings.imapPassword | ||
59 | onTextChanged: settings.imapPassword = text | ||
60 | } | 58 | } |
61 | } | 59 | } |
62 | } | 60 | } |
diff --git a/framework/src/domain/settings/accountsettings.cpp b/framework/src/domain/settings/accountsettings.cpp index acf85522..a75d5e07 100644 --- a/framework/src/domain/settings/accountsettings.cpp +++ b/framework/src/domain/settings/accountsettings.cpp | |||
@@ -56,13 +56,10 @@ void AccountSettings::setAccountIdentifier(const QByteArray &id) | |||
56 | mName = QString(); | 56 | mName = QString(); |
57 | mImapServer = QString(); | 57 | mImapServer = QString(); |
58 | mImapUsername = QString(); | 58 | mImapUsername = QString(); |
59 | mImapPassword = QString(); | ||
60 | mSmtpServer = QString(); | 59 | mSmtpServer = QString(); |
61 | mSmtpUsername = QString(); | 60 | mSmtpUsername = QString(); |
62 | mSmtpPassword = QString(); | ||
63 | mCardDavServer = QString(); | 61 | mCardDavServer = QString(); |
64 | mCardDavUsername = QString(); | 62 | mCardDavUsername = QString(); |
65 | mCardDavPassword = QString(); | ||
66 | mPath = QString(); | 63 | mPath = QString(); |
67 | emit changed(); | 64 | emit changed(); |
68 | emit imapResourceChanged(); | 65 | emit imapResourceChanged(); |
@@ -292,9 +289,6 @@ void AccountSettings::saveImapResource() | |||
292 | {"server", mImapServer}, | 289 | {"server", mImapServer}, |
293 | {"username", mImapUsername} | 290 | {"username", mImapUsername} |
294 | }); | 291 | }); |
295 | if (!mImapPassword.isEmpty()) { | ||
296 | Kube::AccountKeyring{mAccountIdentifier}.storePassword(mImapIdentifier, mImapPassword); | ||
297 | } | ||
298 | } | 292 | } |
299 | 293 | ||
300 | void AccountSettings::saveCardDavResource() | 294 | void AccountSettings::saveCardDavResource() |
@@ -303,9 +297,6 @@ void AccountSettings::saveCardDavResource() | |||
303 | {"server", mCardDavServer}, | 297 | {"server", mCardDavServer}, |
304 | {"username", mCardDavUsername} | 298 | {"username", mCardDavUsername} |
305 | }); | 299 | }); |
306 | if (!mCardDavPassword.isEmpty()) { | ||
307 | Kube::AccountKeyring{mAccountIdentifier}.storePassword(mCardDavIdentifier, mCardDavPassword); | ||
308 | } | ||
309 | } | 300 | } |
310 | 301 | ||
311 | void AccountSettings::saveMaildirResource() | 302 | void AccountSettings::saveMaildirResource() |
@@ -321,9 +312,19 @@ void AccountSettings::saveMailtransportResource() | |||
321 | {"server", mSmtpServer}, | 312 | {"server", mSmtpServer}, |
322 | {"username", mSmtpUsername} | 313 | {"username", mSmtpUsername} |
323 | }); | 314 | }); |
324 | if (!mSmtpPassword.isEmpty()) { | 315 | } |
325 | Kube::AccountKeyring{mAccountIdentifier}.storePassword(mMailtransportIdentifier, mSmtpPassword); | 316 | |
326 | } | 317 | void AccountSettings::login(const QVariantMap &secrets) |
318 | { | ||
319 | auto accountSecret = secrets.value("accountSecret").toString(); | ||
320 | Store::fetchAll<SinkResource>(Query().filter<SinkResource::Account>(mAccountIdentifier)) | ||
321 | .then([=](const QList<SinkResource::Ptr> &resources) { | ||
322 | for (const auto &resource : resources) { | ||
323 | Kube::AccountKeyring{mAccountIdentifier}.storePassword(resource->identifier(), accountSecret); | ||
324 | } | ||
325 | }).onError([](const KAsync::Error &error) { | ||
326 | qWarning() << "Failed to load any account resources resource: " << error; | ||
327 | }).exec(); | ||
327 | } | 328 | } |
328 | 329 | ||
329 | void AccountSettings::saveIdentity() | 330 | void AccountSettings::saveIdentity() |
diff --git a/framework/src/domain/settings/accountsettings.h b/framework/src/domain/settings/accountsettings.h index 79fc5f72..7134539a 100644 --- a/framework/src/domain/settings/accountsettings.h +++ b/framework/src/domain/settings/accountsettings.h | |||
@@ -35,16 +35,13 @@ class AccountSettings : public QObject | |||
35 | Q_PROPERTY(QString imapServer MEMBER mImapServer NOTIFY imapResourceChanged) | 35 | Q_PROPERTY(QString imapServer MEMBER mImapServer NOTIFY imapResourceChanged) |
36 | Q_PROPERTY(QValidator* imapServerValidator READ imapServerValidator CONSTANT) | 36 | Q_PROPERTY(QValidator* imapServerValidator READ imapServerValidator CONSTANT) |
37 | Q_PROPERTY(QString imapUsername MEMBER mImapUsername NOTIFY imapResourceChanged) | 37 | Q_PROPERTY(QString imapUsername MEMBER mImapUsername NOTIFY imapResourceChanged) |
38 | Q_PROPERTY(QString imapPassword MEMBER mImapPassword NOTIFY imapResourceChanged) | ||
39 | 38 | ||
40 | Q_PROPERTY(QString smtpServer MEMBER mSmtpServer NOTIFY smtpResourceChanged) | 39 | Q_PROPERTY(QString smtpServer MEMBER mSmtpServer NOTIFY smtpResourceChanged) |
41 | Q_PROPERTY(QValidator* smtpServerValidator READ smtpServerValidator CONSTANT) | 40 | Q_PROPERTY(QValidator* smtpServerValidator READ smtpServerValidator CONSTANT) |
42 | Q_PROPERTY(QString smtpUsername MEMBER mSmtpUsername NOTIFY smtpResourceChanged) | 41 | Q_PROPERTY(QString smtpUsername MEMBER mSmtpUsername NOTIFY smtpResourceChanged) |
43 | Q_PROPERTY(QString smtpPassword MEMBER mSmtpPassword NOTIFY smtpResourceChanged) | ||
44 | 42 | ||
45 | Q_PROPERTY(QString carddavServer MEMBER mCardDavServer NOTIFY cardDavResourceChanged) | 43 | Q_PROPERTY(QString carddavServer MEMBER mCardDavServer NOTIFY cardDavResourceChanged) |
46 | Q_PROPERTY(QString carddavUsername MEMBER mCardDavUsername NOTIFY cardDavResourceChanged) | 44 | Q_PROPERTY(QString carddavUsername MEMBER mCardDavUsername NOTIFY cardDavResourceChanged) |
47 | Q_PROPERTY(QString carddavPassword MEMBER mCardDavPassword NOTIFY cardDavResourceChanged) | ||
48 | 45 | ||
49 | Q_PROPERTY(QUrl path READ path WRITE setPath NOTIFY pathChanged) | 46 | Q_PROPERTY(QUrl path READ path WRITE setPath NOTIFY pathChanged) |
50 | Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) | 47 | Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) |
@@ -68,6 +65,7 @@ public: | |||
68 | Q_INVOKABLE virtual void load() = 0; | 65 | Q_INVOKABLE virtual void load() = 0; |
69 | Q_INVOKABLE virtual void save() = 0; | 66 | Q_INVOKABLE virtual void save() = 0; |
70 | Q_INVOKABLE virtual void remove() = 0; | 67 | Q_INVOKABLE virtual void remove() = 0; |
68 | Q_INVOKABLE void login(const QVariantMap &secrets); | ||
71 | 69 | ||
72 | signals: | 70 | signals: |
73 | void imapResourceChanged(); | 71 | void imapResourceChanged(); |
@@ -105,7 +103,6 @@ protected: | |||
105 | QByteArray mImapIdentifier; | 103 | QByteArray mImapIdentifier; |
106 | QString mImapServer; | 104 | QString mImapServer; |
107 | QString mImapUsername; | 105 | QString mImapUsername; |
108 | QString mImapPassword; | ||
109 | 106 | ||
110 | QByteArray mMaildirIdentifier; | 107 | QByteArray mMaildirIdentifier; |
111 | QString mPath; | 108 | QString mPath; |
@@ -113,7 +110,6 @@ protected: | |||
113 | QByteArray mMailtransportIdentifier; | 110 | QByteArray mMailtransportIdentifier; |
114 | QString mSmtpServer; | 111 | QString mSmtpServer; |
115 | QString mSmtpUsername; | 112 | QString mSmtpUsername; |
116 | QString mSmtpPassword; | ||
117 | 113 | ||
118 | QByteArray mIdentityIdentifier; | 114 | QByteArray mIdentityIdentifier; |
119 | QString mUsername; | 115 | QString mUsername; |
@@ -122,6 +118,5 @@ protected: | |||
122 | QByteArray mCardDavIdentifier; | 118 | QByteArray mCardDavIdentifier; |
123 | QString mCardDavServer; | 119 | QString mCardDavServer; |
124 | QString mCardDavUsername; | 120 | QString mCardDavUsername; |
125 | QString mCardDavPassword; | ||
126 | }; | 121 | }; |
127 | 122 | ||