diff options
-rw-r--r-- | kde-misc/kio-gdrive/Manifest | 1 | ||||
-rw-r--r-- | kde-misc/kio-gdrive/files/kio-gdrive-1.2.6-refresh-credentials.patch | 101 | ||||
-rw-r--r-- | kde-misc/kio-gdrive/kio-gdrive-1.2.7-r1.ebuild | 52 |
3 files changed, 0 insertions, 154 deletions
diff --git a/kde-misc/kio-gdrive/Manifest b/kde-misc/kio-gdrive/Manifest index c218e2fc2e0d..85b22238440e 100644 --- a/kde-misc/kio-gdrive/Manifest +++ b/kde-misc/kio-gdrive/Manifest @@ -1,2 +1 @@ -DIST kio-gdrive-1.2.7.tar.xz 46748 BLAKE2B 308c7d8d55c4eef175e2ef6030f1fbcdb59fdc6cd33f6c0bd5c35efe7bd21cf7f6cf7293b355f30b7b05effae79b91e357cc5a93ed866db850953f392bd65e0f SHA512 f1eedad2cd244e38f6cdf397e9488cb7f31fe7c4b17825f3b0882ff46f7f62f087e7b2bc59db434b4a55641920b8b03f3dec6adf7031ccc2277c7a0b166f9c80 DIST kio-gdrive-1.3.0.tar.xz 51668 BLAKE2B a5c9bc347e5b40998449b613e8ad73c362d82d2486a1e91527f84acc5473d603b3cca422bd7c67cff28e49b08803904fdf752bec742bae752e868b8a84321684 SHA512 b0a6be2b59512d3faf6c677c6f3ffdcc9a38fff3a41d0bc6a29566008d7da3ab524fb189ddd219308a8ac8244fbed67c01da480e8193ed0aeb815fe64d72988a diff --git a/kde-misc/kio-gdrive/files/kio-gdrive-1.2.6-refresh-credentials.patch b/kde-misc/kio-gdrive/files/kio-gdrive-1.2.6-refresh-credentials.patch deleted file mode 100644 index 2d5958827866..000000000000 --- a/kde-misc/kio-gdrive/files/kio-gdrive-1.2.6-refresh-credentials.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 4ded388b2b2672f5f7fb953a0150a69fcfaa7cb0 Mon Sep 17 00:00:00 2001 -From: David Barchiesi <david@barchie.si> -Date: Mon, 8 Jul 2019 09:54:08 +0200 -Subject: Re get Google credentials from KAccounts when a refresh is needed. - -Summary: Currently, when the Google access token in use expires, the KIO slave silently ignores refreshing the token (only 'not implemented' gets logged) and fails all subsequent api requests. This patch prevents the slave from breaking by requesting new credentials from KAccounts. - -Test Plan: Open a Google Drive folder in Dolphin, wait until accounts token needs a refresh, open another Google Drive folder. The folder loads because a new access token was requested. - -Reviewers: elvisangelaccio - -Reviewed By: elvisangelaccio - -Subscribers: mck182, elvisangelaccio - -Differential Revision: https://phabricator.kde.org/D22009 ---- - src/kaccountsmanager.cpp | 45 ++++++++++++++++++++++++++++++++------------- - src/kaccountsmanager.h | 2 ++ - 2 files changed, 34 insertions(+), 13 deletions(-) - -diff --git a/src/kaccountsmanager.cpp b/src/kaccountsmanager.cpp -index 08272df..dc35852 100644 ---- a/src/kaccountsmanager.cpp -+++ b/src/kaccountsmanager.cpp -@@ -85,8 +85,19 @@ AccountPtr KAccountsManager::createAccount() - - AccountPtr KAccountsManager::refreshAccount(const AccountPtr &account) - { -- Q_UNUSED(account) -- qCWarning(GDRIVE) << Q_FUNC_INFO << "not implemented."; -+ const QString accountName = account->accountName(); -+ for (auto it = m_accounts.constBegin(); it != m_accounts.constEnd(); ++it) { -+ if (it.value()->accountName() != accountName) { -+ continue; -+ } -+ -+ const auto id = it.key(); -+ qCDebug(GDRIVE) << "Refreshing" << accountName; -+ auto gapiAccount = getAccountCredentials(id, accountName); -+ m_accounts.insert(id, gapiAccount); -+ return gapiAccount; -+ } -+ - return {}; - } - -@@ -143,19 +154,27 @@ void KAccountsManager::loadAccounts() - } - qCDebug(GDRIVE) << account->displayName() << "supports gdrive!"; - -- auto job = new GetCredentialsJob(id, nullptr); -- job->exec(); -+ auto gapiAccount = getAccountCredentials(id, account->displayName()); -+ m_accounts.insert(id, gapiAccount); -+ } -+ } -+} - -- auto gapiAccount = AccountPtr(new Account(account->displayName(), -- job->credentialsData().value(QStringLiteral("AccessToken")).toString(), -- job->credentialsData().value(QStringLiteral("RefreshToken")).toString())); -+AccountPtr KAccountsManager::getAccountCredentials(Accounts::AccountId id, const QString& displayName) -+{ -+ auto job = new GetCredentialsJob(id, nullptr); -+ job->exec(); - -- const auto scopes = job->credentialsData().value(QStringLiteral("Scope")).toStringList(); -- for (const auto &scope : scopes) { -- gapiAccount->addScope(QUrl::fromUserInput(scope)); -- } -+ auto gapiAccount = AccountPtr(new Account(displayName, -+ job->credentialsData().value(QStringLiteral("AccessToken")).toString(), -+ job->credentialsData().value(QStringLiteral("RefreshToken")).toString())); - -- m_accounts.insert(id, gapiAccount); -- } -+ const auto scopes = job->credentialsData().value(QStringLiteral("Scope")).toStringList(); -+ for (const auto &scope : scopes) { -+ gapiAccount->addScope(QUrl::fromUserInput(scope)); - } -+ -+ qCDebug(GDRIVE) << "Got account credentials for:" << gapiAccount->accountName() << ", accessToken:" << gapiAccount->accessToken() << ", refreshToken:" << gapiAccount->refreshToken(); -+ -+ return gapiAccount; - } -diff --git a/src/kaccountsmanager.h b/src/kaccountsmanager.h -index 235d11a..d2dbc43 100644 ---- a/src/kaccountsmanager.h -+++ b/src/kaccountsmanager.h -@@ -40,6 +40,8 @@ public: - private: - void loadAccounts(); - -+ KGAPI2::AccountPtr getAccountCredentials(Accounts::AccountId id, const QString& displayName); -+ - QMap<Accounts::AccountId, KGAPI2::AccountPtr> m_accounts; - }; - --- -cgit v1.1 diff --git a/kde-misc/kio-gdrive/kio-gdrive-1.2.7-r1.ebuild b/kde-misc/kio-gdrive/kio-gdrive-1.2.7-r1.ebuild deleted file mode 100644 index e7eb5ed98d46..000000000000 --- a/kde-misc/kio-gdrive/kio-gdrive-1.2.7-r1.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ECM_HANDBOOK="forceoptional" -ECM_TEST="optional" -KFMIN=5.60.0 -QTMIN=5.12.3 -inherit ecm kde.org - -DESCRIPTION="KIO Slave for Google Drive service" -HOMEPAGE="https://phabricator.kde.org/project/profile/72/" - -if [[ ${KDE_BUILD_TYPE} != live ]] ; then - SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 x86" -fi - -LICENSE="GPL-2+" -SLOT="5" -IUSE="+kaccounts" - -BDEPEND="dev-util/intltool" -COMMON_DEPEND=" - >=dev-qt/qtwidgets-${QTMIN}:5 - =kde-apps/libkgapi-19.12*:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kio-${KFMIN}:5 - >=kde-frameworks/knotifications-${KFMIN}:5 - kaccounts? ( =kde-apps/kaccounts-integration-19.12*:5 ) - !kaccounts? ( dev-libs/qtkeychain:=[qt5(+)] ) -" -DEPEND="${COMMON_DEPEND} - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtnetwork-${QTMIN}:5 -" -RDEPEND="${COMMON_DEPEND} - kaccounts? ( >=kde-apps/kaccounts-providers-19.08.0:5 ) -" - -DOCS=( README.md ) - -PATCHES=( "${FILESDIR}"/${PN}-1.2.6-refresh-credentials.patch ) - -src_configure() { - local mycmakeargs=( - $(cmake_use_find_package kaccounts KAccounts) - ) - ecm_src_configure -} |