[SCM] ktp-accounts-kcm packaging branch, master, updated. debian/15.12.1-1-1157-gc4589c5

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:06:17 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=4fa1f55

The following commit has been merged in the master branch:
commit 4fa1f55d68aaf2a50e2dc649127ce773dd2f3108
Author: Martin Klapetek <mklapetek at kde.org>
Date:   Fri Jan 30 19:55:53 2015 +0100

    Finish storing the password in SSO if it was changed
---
 CMakeLists.txt                              |  1 +
 plugins/kaccounts/CMakeLists.txt            |  4 ++++
 plugins/kaccounts/kaccounts-ui-provider.cpp | 29 ++++++++++++++++++++++++++++-
 plugins/kaccounts/kaccounts-ui-provider.h   |  2 ++
 4 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b462ffe..e779224 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,6 +18,7 @@ find_package (TelepathyQt5 REQUIRED)
 find_package (KAccounts REQUIRED)
 find_package (AccountsFileDir REQUIRED)
 find_package (AccountsQt5 1.10 REQUIRED CONFIG)
+find_package (SignOnQt5 8.55 REQUIRED CONFIG)
 find_package (Intltool REQUIRED) #needed to generate service and provider files
 
 # make some more macros available
diff --git a/plugins/kaccounts/CMakeLists.txt b/plugins/kaccounts/CMakeLists.txt
index 048dc32..f5828c8 100644
--- a/plugins/kaccounts/CMakeLists.txt
+++ b/plugins/kaccounts/CMakeLists.txt
@@ -4,6 +4,8 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}
                      ${CMAKE_CURRENT_SOURCE_DIR}
                      ${KACCOUNTS_INCLUDE_DIR}
                      ${ACCOUNTSQT_INCLUDE_DIRS}
+                     ${SIGNONQT_INCLUDE_DIRS}
+
 )
 
 set (ktpaccountskcm_plugin_kaccounts_SRCS
@@ -21,6 +23,8 @@ target_link_libraries (ktpaccountskcm_plugin_kaccounts
                        KF5::TextWidgets
                        ${TELEPATHY_QT5_LIBRARIES}
                        ${KACCOUNTS_LIBRARIES}
+                       ${ACCOUNTSQT_LIBRARIES}
+                       ${SIGNONQT_LIBRARIES}
 )
 
 # Install:
diff --git a/plugins/kaccounts/kaccounts-ui-provider.cpp b/plugins/kaccounts/kaccounts-ui-provider.cpp
index b5ea312..ca1b7af 100644
--- a/plugins/kaccounts/kaccounts-ui-provider.cpp
+++ b/plugins/kaccounts/kaccounts-ui-provider.cpp
@@ -24,6 +24,13 @@
 #include <KCMTelepathyAccounts/account-edit-widget.h>
 
 #include <KAccounts/getcredentialsjob.h>
+#include <KAccounts/core.h>
+
+#include <SignOn/Identity>
+#include <SignOn/IdentityInfo>
+#include <Accounts/Account>
+#include <Accounts/AccountService>
+#include <Accounts/Manager>
 
 #include <TelepathyQt/Profile>
 #include <TelepathyQt/ConnectionManager>
@@ -218,6 +225,7 @@ void KAccountsUiProvider::showConfigureAccountDialog(const quint32 accountId)
     d->dialog->setAttribute(Qt::WA_DeleteOnClose);
     QVBoxLayout *mainLayout = new QVBoxLayout(d->dialog);
     d->dialog->setLayout(mainLayout);
+    d->dialog->setProperty("accountId", accountId);
 
     QDialogButtonBox *dbb = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, d->dialog);
     connect(dbb, SIGNAL(accepted()), this, SLOT(onConfigureAccountDialogAccepted()));
@@ -380,8 +388,10 @@ void KAccountsUiProvider::onConfigureAccountDialogAccepted()
 
         if (values.contains(QLatin1String("password"))) {
             //TODO Store the new password in sso
+            quint32 accountId = d->dialog->property("accountId").toUInt();
+            storePasswordInSso(accountId, values.value(QStringLiteral("password")).toString());
         } else {
-            //TODO ...or remove it.
+            //TODO ...or remove it?
         }
 
         if (d->accountEditWidget->updateDisplayName()) {
@@ -412,3 +422,20 @@ void KAccountsUiProvider::onConfigureAccountDialogRejected()
 {
     d->dialog->reject();
 }
+
+void KAccountsUiProvider::storePasswordInSso(const quint32 accountId, const QString &password)
+{
+    Accounts::Manager *manager = KAccounts::accountsManager();
+    Accounts::Account *account = manager->account(accountId);
+    SignOn::Identity *identity;
+
+    if (account) {
+        Accounts::AccountService *service = new Accounts::AccountService(account, manager->service(QString()), this);
+        Accounts::AuthData authData = service->authData();
+        identity = SignOn::Identity::existingIdentity(authData.credentialsId(), this);
+
+        SignOn::IdentityInfo info;
+        info.setSecret(password);
+        identity->storeCredentials(info);
+    }
+}
diff --git a/plugins/kaccounts/kaccounts-ui-provider.h b/plugins/kaccounts/kaccounts-ui-provider.h
index 0d1c656..88386cd 100644
--- a/plugins/kaccounts/kaccounts-ui-provider.h
+++ b/plugins/kaccounts/kaccounts-ui-provider.h
@@ -59,6 +59,8 @@ private Q_SLOTS:
     void onConfigureAccountDialogRejected();
     void onConfigureAccountFinished();
 
+    void storePasswordInSso(const quint32 accountId, const QString &password);
+
 private:
     class Private;
     Private * const d;

-- 
ktp-accounts-kcm packaging



More information about the pkg-kde-commits mailing list