diff options
author | avilla <avilla@FreeBSD.org> | 2012-07-19 06:56:35 +0800 |
---|---|---|
committer | avilla <avilla@FreeBSD.org> | 2012-07-19 06:56:35 +0800 |
commit | cd84ecf28f8b5221c526640ed4169b25c455dd6b (patch) | |
tree | 7ee4907627ef9e541ade712ce1024efede70fcba /databases | |
parent | c8585c18acefb4971299e274dcab1ed3258e6058 (diff) | |
download | freebsd-ports-gnome-cd84ecf28f8b5221c526640ed4169b25c455dd6b.tar.gz freebsd-ports-gnome-cd84ecf28f8b5221c526640ed4169b25c455dd6b.tar.zst freebsd-ports-gnome-cd84ecf28f8b5221c526640ed4169b25c455dd6b.zip |
- Backport fix to an authentication bug which makes it impossible to
authenticate to Google services.
- Bump PORTREVISION.
Submitted by: Mina R Waheeb <mina at kemetex.com> via mailing list
Diffstat (limited to 'databases')
-rw-r--r-- | databases/akonadi-google/Makefile | 2 | ||||
-rw-r--r-- | databases/akonadi-google/files/patch-git_a5ab37f | 40 |
2 files changed, 41 insertions, 1 deletions
diff --git a/databases/akonadi-google/Makefile b/databases/akonadi-google/Makefile index 27a39550a600..35d19c678297 100644 --- a/databases/akonadi-google/Makefile +++ b/databases/akonadi-google/Makefile @@ -7,7 +7,7 @@ PORTNAME= akonadi-google PORTVERSION= 0.3.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases kde MASTER_SITES= http://www.progdan.cz/wp-content/uploads/ DISTNAME= ${PORTNAME}-${PORTVERSION} diff --git a/databases/akonadi-google/files/patch-git_a5ab37f b/databases/akonadi-google/files/patch-git_a5ab37f new file mode 100644 index 000000000000..8f2dfb6ddd54 --- /dev/null +++ b/databases/akonadi-google/files/patch-git_a5ab37f @@ -0,0 +1,40 @@ +commit a5ab37f15f39217cf631f8d61b2ea21305b81490 +Author: Dan Vrátil <dan@progdan.cz> +Date: Wed Jun 6 00:36:46 2012 +0200 + + Parse OAuth code from page title instead of body + + The OAuth code used for obtaining access tokens is provided + in webpage <title> as a string. The title is guaranteed not to change + syntax, while the body of the page, from which we were parsing the token + before, can change anytime, which breaks the authentication process. + + BUG: 301240 + FIXED-IN: 0.4.1 + +diff --git a/libkgapi/ui/authwidget_p.cpp b/libkgapi/ui/authwidget_p.cpp +index 57d914c..55e77cb 100644 +--- ./libkgoogle/authdialog.cpp ++++ ./libkgoogle/authdialog.cpp +@@ -147,13 +147,18 @@ void AuthWidgetPrivate::webviewFinished() + } + + if (url.host() == "accounts.google.com" && url.path() == "/o/oauth2/approval") { +- QWebElement el = m_webiew->page()->mainFrame()->findFirstElement("textarea"); +- if (el.isNull()) { ++ QString title = m_webiew->title(); ++ QString token; ++ ++ if (title.startsWith(QLatin1String("success"), Qt::CaseInsensitive)) { ++ int pos = title.indexOf(QLatin1String("code=")); ++ /* Skip the 'code=' string as well */ ++ token = title.mid (pos + 5); ++ } else { + emitError(KGoogle::AuthError, i18n("Parsing token page failed.")); + return; + } + +- QString token = el.toInnerXml(); + if (token.isEmpty()) { + emitError(KGoogle::AuthError, i18n("Failed to obtain token.")); + return; |