diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-04-13 09:26:16 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-04-13 09:26:16 +0200 |
commit | 634772c6da51c1d69f804bd45bbedaeb88789cd6 (patch) | |
tree | b5fca65f645b528c3981983f1651a3708c8ccac9 | |
parent | 53d3bc5fae42612984f7e1c606dd6fc7ef1ccd2c (diff) | |
download | kube-634772c6da51c1d69f804bd45bbedaeb88789cd6.tar.gz kube-634772c6da51c1d69f804bd45bbedaeb88789cd6.zip |
Identity Support
-rw-r--r-- | accounts/maildir/maildirsettings.cpp | 33 | ||||
-rw-r--r-- | accounts/maildir/maildirsettings.h | 6 | ||||
-rw-r--r-- | accounts/maildir/package/contents/ui/MaildirAccountSettings.qml | 16 | ||||
-rw-r--r-- | accounts/maildir/tests/settingstest.cpp | 13 |
4 files changed, 65 insertions, 3 deletions
diff --git a/accounts/maildir/maildirsettings.cpp b/accounts/maildir/maildirsettings.cpp index fa30851c..e47b834f 100644 --- a/accounts/maildir/maildirsettings.cpp +++ b/accounts/maildir/maildirsettings.cpp | |||
@@ -82,6 +82,18 @@ void MaildirSettings::setAccountIdentifier(const QByteArray &id) | |||
82 | [](int errorCode, const QString &errorMessage) { | 82 | [](int errorCode, const QString &errorMessage) { |
83 | qWarning() << "Failed to find the maildir resource: " << errorMessage; | 83 | qWarning() << "Failed to find the maildir resource: " << errorMessage; |
84 | }).exec(); | 84 | }).exec(); |
85 | |||
86 | //FIXME this assumes that we only ever have one identity per account | ||
87 | Sink::Store::fetchOne<Sink::ApplicationDomain::Identity>(Sink::Query::PropertyFilter("account", QVariant::fromValue(id))) | ||
88 | .then<void, Sink::ApplicationDomain::Identity>([this](const Sink::ApplicationDomain::Identity &identity) { | ||
89 | mIdentityIdentifier = identity.identifier(); | ||
90 | mUsername = identity.getProperty("username").toString(); | ||
91 | mEmailAddress = identity.getProperty("address").toString(); | ||
92 | emit identityChanged(); | ||
93 | }, | ||
94 | [](int errorCode, const QString &errorMessage) { | ||
95 | qWarning() << "Failed to find the identity resource: " << errorMessage; | ||
96 | }).exec(); | ||
85 | } | 97 | } |
86 | 98 | ||
87 | QByteArray MaildirSettings::accountIdentifier() const | 99 | QByteArray MaildirSettings::accountIdentifier() const |
@@ -207,6 +219,27 @@ void MaildirSettings::save() | |||
207 | }) | 219 | }) |
208 | .exec(); | 220 | .exec(); |
209 | } | 221 | } |
222 | |||
223 | if (!mIdentityIdentifier.isEmpty()) { | ||
224 | Sink::ApplicationDomain::Identity identity(mMailtransportIdentifier); | ||
225 | identity.setProperty("username", mUsername); | ||
226 | identity.setProperty("address", mEmailAddress); | ||
227 | Sink::Store::modify(identity).then<void>([](){}, [](int errorCode, const QString &errorMessage) { | ||
228 | qWarning() << "Error while modifying identity: " << errorMessage; | ||
229 | }) | ||
230 | .exec(); | ||
231 | } else { | ||
232 | auto identity = Sink::ApplicationDomain::ApplicationDomainType::createEntity<Sink::ApplicationDomain::Identity>(); | ||
233 | mIdentityIdentifier = identity.identifier(); | ||
234 | identity.setProperty("account", mAccountIdentifier); | ||
235 | identity.setProperty("username", mUsername); | ||
236 | identity.setProperty("address", mEmailAddress); | ||
237 | Sink::Store::create(identity).then<void>([]() {}, | ||
238 | [](int errorCode, const QString &errorMessage) { | ||
239 | qWarning() << "Error while creating identity: " << errorMessage; | ||
240 | }) | ||
241 | .exec(); | ||
242 | } | ||
210 | } | 243 | } |
211 | 244 | ||
212 | void MaildirSettings::remove() | 245 | void MaildirSettings::remove() |
diff --git a/accounts/maildir/maildirsettings.h b/accounts/maildir/maildirsettings.h index be69ffb8..a02944d9 100644 --- a/accounts/maildir/maildirsettings.h +++ b/accounts/maildir/maildirsettings.h | |||
@@ -29,6 +29,8 @@ class MaildirSettings : public QObject | |||
29 | Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) | 29 | Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) |
30 | Q_PROPERTY(QString icon MEMBER mIcon NOTIFY changed) | 30 | Q_PROPERTY(QString icon MEMBER mIcon NOTIFY changed) |
31 | Q_PROPERTY(QString accountName MEMBER mName NOTIFY changed) | 31 | Q_PROPERTY(QString accountName MEMBER mName NOTIFY changed) |
32 | Q_PROPERTY(QString userName MEMBER mUsername NOTIFY identityChanged) | ||
33 | Q_PROPERTY(QString emailAddress MEMBER mEmailAddress NOTIFY identityChanged) | ||
32 | Q_PROPERTY(QString smtpServer MEMBER mSmtpServer NOTIFY smtpResourceChanged) | 34 | Q_PROPERTY(QString smtpServer MEMBER mSmtpServer NOTIFY smtpResourceChanged) |
33 | Q_PROPERTY(QValidator* smtpServerValidator READ smtpServerValidator CONSTANT) | 35 | Q_PROPERTY(QValidator* smtpServerValidator READ smtpServerValidator CONSTANT) |
34 | Q_PROPERTY(QString smtpUsername MEMBER mSmtpUsername NOTIFY smtpResourceChanged) | 36 | Q_PROPERTY(QString smtpUsername MEMBER mSmtpUsername NOTIFY smtpResourceChanged) |
@@ -52,15 +54,19 @@ public: | |||
52 | signals: | 54 | signals: |
53 | void pathChanged(); | 55 | void pathChanged(); |
54 | void smtpResourceChanged(); | 56 | void smtpResourceChanged(); |
57 | void identityChanged(); | ||
55 | void changed(); | 58 | void changed(); |
56 | 59 | ||
57 | private: | 60 | private: |
58 | QByteArray mIdentifier; | 61 | QByteArray mIdentifier; |
59 | QByteArray mAccountIdentifier; | 62 | QByteArray mAccountIdentifier; |
60 | QByteArray mMailtransportIdentifier; | 63 | QByteArray mMailtransportIdentifier; |
64 | QByteArray mIdentityIdentifier; | ||
61 | QString mPath; | 65 | QString mPath; |
62 | QString mIcon; | 66 | QString mIcon; |
63 | QString mName; | 67 | QString mName; |
68 | QString mUsername; | ||
69 | QString mEmailAddress; | ||
64 | QString mSmtpServer; | 70 | QString mSmtpServer; |
65 | QString mSmtpUsername; | 71 | QString mSmtpUsername; |
66 | QString mSmtpPassword; | 72 | QString mSmtpPassword; |
diff --git a/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml b/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml index e508a475..d9d0741d 100644 --- a/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml +++ b/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml | |||
@@ -53,6 +53,22 @@ Rectangle { | |||
53 | onTextChanged: { maildirSettings.accountName = text; } | 53 | onTextChanged: { maildirSettings.accountName = text; } |
54 | } | 54 | } |
55 | 55 | ||
56 | Label { text: "User Name" } | ||
57 | TextField { | ||
58 | placeholderText: "Your Name" | ||
59 | Layout.fillWidth: true | ||
60 | text: maildirSettings.userName | ||
61 | onTextChanged: { maildirSettings.userName = text; } | ||
62 | } | ||
63 | |||
64 | Label { text: "Email Address" } | ||
65 | TextField { | ||
66 | placeholderText: "Your EMail Address" | ||
67 | Layout.fillWidth: true | ||
68 | text: maildirSettings.emailAddress | ||
69 | onTextChanged: { maildirSettings.emailAddress = text; } | ||
70 | } | ||
71 | |||
56 | Text { | 72 | Text { |
57 | Layout.columnSpan: 2 | 73 | Layout.columnSpan: 2 |
58 | Layout.fillWidth: true | 74 | Layout.fillWidth: true |
diff --git a/accounts/maildir/tests/settingstest.cpp b/accounts/maildir/tests/settingstest.cpp index 07665c24..1967bcfc 100644 --- a/accounts/maildir/tests/settingstest.cpp +++ b/accounts/maildir/tests/settingstest.cpp | |||
@@ -26,6 +26,8 @@ private slots: | |||
26 | auto smtpServer = QString("smtpserver"); | 26 | auto smtpServer = QString("smtpserver"); |
27 | auto smtpUsername = QString("username"); | 27 | auto smtpUsername = QString("username"); |
28 | auto smtpPassword = QString("password"); | 28 | auto smtpPassword = QString("password"); |
29 | auto username = QString("username"); | ||
30 | auto emailAddress = QString("emailAddress"); | ||
29 | 31 | ||
30 | MaildirSettings settings; | 32 | MaildirSettings settings; |
31 | settings.setAccountIdentifier(accountId); | 33 | settings.setAccountIdentifier(accountId); |
@@ -33,6 +35,8 @@ private slots: | |||
33 | settings.setProperty("smtpServer", smtpServer); | 35 | settings.setProperty("smtpServer", smtpServer); |
34 | settings.setProperty("smtpUsername", smtpUsername); | 36 | settings.setProperty("smtpUsername", smtpUsername); |
35 | settings.setProperty("smtpPassword", smtpPassword); | 37 | settings.setProperty("smtpPassword", smtpPassword); |
38 | settings.setProperty("username", username); | ||
39 | settings.setProperty("emailAddress", emailAddress); | ||
36 | settings.save(); | 40 | settings.save(); |
37 | 41 | ||
38 | Sink::Store::fetchAll<Sink::ApplicationDomain::SinkResource>(Sink::Query()).then<void, QList<Sink::ApplicationDomain::SinkResource>>([](const QList<Sink::ApplicationDomain::SinkResource> &resources) { | 42 | Sink::Store::fetchAll<Sink::ApplicationDomain::SinkResource>(Sink::Query()).then<void, QList<Sink::ApplicationDomain::SinkResource>>([](const QList<Sink::ApplicationDomain::SinkResource> &resources) { |
@@ -46,20 +50,23 @@ private slots: | |||
46 | QSignalSpy spy(&readSettings, &MaildirSettings::pathChanged); | 50 | QSignalSpy spy(&readSettings, &MaildirSettings::pathChanged); |
47 | QSignalSpy spy1(&readSettings, &MaildirSettings::smtpResourceChanged); | 51 | QSignalSpy spy1(&readSettings, &MaildirSettings::smtpResourceChanged); |
48 | readSettings.setAccountIdentifier(accountId); | 52 | readSettings.setAccountIdentifier(accountId); |
49 | QTRY_VERIFY(spy.count()); | 53 | //Once for clear and once for once for the new setting |
50 | QTRY_VERIFY(spy1.count()); | 54 | QTRY_COMPARE(spy.count(), 2); |
55 | QTRY_COMPARE(spy1.count(), 2); | ||
51 | QVERIFY(!readSettings.accountIdentifier().isEmpty()); | 56 | QVERIFY(!readSettings.accountIdentifier().isEmpty()); |
52 | QCOMPARE(readSettings.path().toString(), maildirPath); | 57 | QCOMPARE(readSettings.path().toString(), maildirPath); |
53 | QCOMPARE(readSettings.property("smtpServer").toString(), smtpServer); | 58 | QCOMPARE(readSettings.property("smtpServer").toString(), smtpServer); |
54 | QCOMPARE(readSettings.property("smtpUsername").toString(), smtpUsername); | 59 | QCOMPARE(readSettings.property("smtpUsername").toString(), smtpUsername); |
55 | QCOMPARE(readSettings.property("smtpPassword").toString(), smtpPassword); | 60 | QCOMPARE(readSettings.property("smtpPassword").toString(), smtpPassword); |
61 | QCOMPARE(readSettings.property("username").toString(), smtpUsername); | ||
62 | QCOMPARE(readSettings.property("emailAddress").toString(), smtpPassword); | ||
56 | } | 63 | } |
57 | 64 | ||
58 | { | 65 | { |
59 | MaildirSettings settings; | 66 | MaildirSettings settings; |
60 | QSignalSpy spy(&settings, &MaildirSettings::pathChanged); | 67 | QSignalSpy spy(&settings, &MaildirSettings::pathChanged); |
61 | settings.setAccountIdentifier(accountId); | 68 | settings.setAccountIdentifier(accountId); |
62 | QTRY_VERIFY(spy.count()); | 69 | QTRY_COMPARE(spy.count(), 2); |
63 | settings.remove(); | 70 | settings.remove(); |
64 | } | 71 | } |
65 | 72 | ||