1
mirror of https://invent.kde.org/network/falkon.git synced 2024-11-11 01:22:10 +01:00

Remove GnomeKeyringPasswords plugin

Modern distributions no longer have the deprecated library in repos.
This commit is contained in:
David Rosca 2019-04-21 11:03:35 +02:00
parent 9828237159
commit b9fb89a31c
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
9 changed files with 0 additions and 531 deletions

View File

@ -96,15 +96,6 @@ if (EXISTS "${CMAKE_SOURCE_DIR}/po")
find_package(KF5I18n REQUIRED) find_package(KF5I18n REQUIRED)
endif() endif()
# Optional: GnomeKeyring
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
option(BUILD_KEYRING "Gnome keyring password plugin" ON)
if (BUILD_KEYRING)
pkg_check_modules(GNOME_KEYRING IMPORTED_TARGET gnome-keyring-1 )
endif()
endif()
# Optional: KWallet, KIO, KCrash, KCoreAddons # Optional: KWallet, KIO, KCrash, KCoreAddons
set(KF5_MIN_VERSION "5.54.0") set(KF5_MIN_VERSION "5.54.0")
find_package(KF5Wallet ${KF5_MIN_VERSION} CONFIG) find_package(KF5Wallet ${KF5_MIN_VERSION} CONFIG)

View File

@ -9,10 +9,6 @@ add_subdirectory(StatusBarIcons)
add_subdirectory(TabManager) add_subdirectory(TabManager)
add_subdirectory(VerticalTabs) add_subdirectory(VerticalTabs)
if (GNOME_KEYRING_FOUND)
add_subdirectory(GnomeKeyringPasswords)
endif()
if (ENABLE_KDE_FRAMEWORKS_INTEGRATION_PLUGIN) if (ENABLE_KDE_FRAMEWORKS_INTEGRATION_PLUGIN)
add_subdirectory(KDEFrameworksIntegration) add_subdirectory(KDEFrameworksIntegration)
endif() endif()

View File

@ -1,13 +0,0 @@
add_definitions(${GNOME_KEYRING_CFLAGS} ${GNOME_KEYRING_CFLAGS_OTHER})
set( GnomeKeyringPasswords_SRCS
gnomekeyringplugin.cpp
gnomekeyringpasswordbackend.cpp
)
ecm_create_qm_loader( GnomeKeyringPasswords_SRCS falkon_gnomekeyringpasswords_qt )
add_library(GnomeKeyringPasswords MODULE ${GnomeKeyringPasswords_SRCS} ${RSCS})
install(TARGETS GnomeKeyringPasswords DESTINATION ${FALKON_INSTALL_PLUGINDIR})
target_link_libraries(GnomeKeyringPasswords PkgConfig::GNOME_KEYRING FalkonPrivate)

View File

@ -1,2 +0,0 @@
#! /bin/sh
$EXTRACT_TR_STRINGS `find . -name '*.cpp' -o -name '*.h' -o -name '*.ui'` -o $podir/falkon_gnomekeyringpasswords_qt.pot

View File

@ -1,304 +0,0 @@
/* ============================================================
* GnomeKeyringPasswords - gnome-keyring support plugin for Falkon
* Copyright (C) 2013-2014 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#include "gnomekeyringpasswordbackend.h"
#include "gnomekeyringplugin.h"
#include <QDateTime>
extern "C" {
#include "gnome-keyring.h"
}
static PasswordEntry createEntry(GnomeKeyringFound* item)
{
PasswordEntry entry;
entry.id = item->item_id;
entry.password = QString::fromUtf8(item->secret);
for (unsigned i = 0; i < item->attributes->len; ++i) {
GnomeKeyringAttribute attr = g_array_index(item->attributes, GnomeKeyringAttribute, i);
if (strcmp(attr.name, "host") == 0) {
entry.host = QString::fromUtf8(attr.value.string);
}
else if (strcmp(attr.name, "username") == 0) {
entry.username = QString::fromUtf8(attr.value.string);
}
else if (strcmp(attr.name, "data") == 0) {
entry.data = attr.value.string;
}
else if (strcmp(attr.name, "updated") == 0) {
entry.updated = attr.value.integer;
}
}
entry.data.replace(QByteArray("___PASSWORD-VALUE___"), PasswordManager::urlEncodePassword(entry.password));
return entry;
}
static GnomeKeyringAttributeList* createAttributes(const PasswordEntry &entry)
{
GnomeKeyringAttributeList* attributes = gnome_keyring_attribute_list_new();
gnome_keyring_attribute_list_append_string(attributes, "application", "Falkon");
QByteArray value = entry.username.toUtf8();
gnome_keyring_attribute_list_append_string(attributes, "username", value.constData());
value = entry.data;
value.replace(PasswordManager::urlEncodePassword(entry.password), "___PASSWORD-VALUE___");
gnome_keyring_attribute_list_append_string(attributes, "data", value.constData());
value = entry.host.toUtf8();
gnome_keyring_attribute_list_append_string(attributes, "host", value.constData());
gnome_keyring_attribute_list_append_uint32(attributes, "updated", entry.updated);
return attributes;
}
static void storeEntry(PasswordEntry &entry)
{
guint32 itemId;
GnomeKeyringAttributeList* attributes = createAttributes(entry);
QByteArray pass = entry.password.toUtf8();
QByteArray host = entry.host.toUtf8();
GnomeKeyringResult result = gnome_keyring_item_create_sync(GNOME_KEYRING_DEFAULT,
GNOME_KEYRING_ITEM_GENERIC_SECRET,
host.constData(),
attributes,
pass.constData(),
TRUE, // Update if exists
&itemId);
gnome_keyring_attribute_list_free(attributes);
if (result != GNOME_KEYRING_RESULT_OK) {
qWarning() << "GnomeKeyringPasswordBackend::addEntry Cannot add entry to keyring!";
}
entry.id = itemId;
}
GnomeKeyringPasswordBackend::GnomeKeyringPasswordBackend()
: PasswordBackend()
, m_loaded(false)
{
}
QString GnomeKeyringPasswordBackend::name() const
{
return GnomeKeyringPlugin::tr("Gnome Keyring");
}
QVector<PasswordEntry> GnomeKeyringPasswordBackend::getEntries(const QUrl &url)
{
initialize();
const QString host = PasswordManager::createHost(url);
QVector<PasswordEntry> list;
foreach (const PasswordEntry &entry, m_allEntries) {
if (entry.host == host) {
list.append(entry);
}
}
// Sort to prefer last updated entries
std::sort(list.begin(), list.end());
return list;
}
QVector<PasswordEntry> GnomeKeyringPasswordBackend::getAllEntries()
{
initialize();
return m_allEntries;
}
void GnomeKeyringPasswordBackend::addEntry(const PasswordEntry &entry)
{
initialize();
PasswordEntry stored = entry;
stored.updated = QDateTime::currentDateTime().toTime_t();
storeEntry(stored);
m_allEntries.append(stored);
}
bool GnomeKeyringPasswordBackend::updateEntry(const PasswordEntry &entry)
{
initialize();
// Update item attributes
GnomeKeyringAttributeList* attributes = createAttributes(entry);
GnomeKeyringResult result = gnome_keyring_item_set_attributes_sync(GNOME_KEYRING_DEFAULT,
entry.id.toUInt(),
attributes);
gnome_keyring_attribute_list_free(attributes);
if (result != GNOME_KEYRING_RESULT_OK) {
qWarning() << "GnomeKeyringPasswordBackend::updateEntry Cannot updated entry attributes in keyring!";
return false;
}
// Update secret
GnomeKeyringItemInfo* info;
result = gnome_keyring_item_get_info_full_sync(GNOME_KEYRING_DEFAULT, entry.id.toUInt(),
GNOME_KEYRING_ITEM_INFO_SECRET, &info);
if (result != GNOME_KEYRING_RESULT_OK) {
qWarning() << "GnomeKeyringPasswordBackend::updateEntry Cannot get entry info from keyring!";
return false;
}
QByteArray pass = entry.password.toUtf8();
gnome_keyring_item_info_set_secret(info, pass.constData());
result = gnome_keyring_item_set_info_sync(GNOME_KEYRING_DEFAULT, entry.id.toUInt(), info);
gnome_keyring_item_info_free(info);
if (result != GNOME_KEYRING_RESULT_OK) {
qWarning() << "GnomeKeyringPasswordBackend::updateEntry Cannot set entry info in keyring!";
return false;
}
int index = m_allEntries.indexOf(entry);
if (index > -1) {
m_allEntries[index] = entry;
}
return true;
}
void GnomeKeyringPasswordBackend::updateLastUsed(PasswordEntry &entry)
{
initialize();
entry.updated = QDateTime::currentDateTime().toTime_t();
GnomeKeyringAttributeList* attributes = createAttributes(entry);
GnomeKeyringResult result = gnome_keyring_item_set_attributes_sync(GNOME_KEYRING_DEFAULT,
entry.id.toUInt(),
attributes);
gnome_keyring_attribute_list_free(attributes);
if (result != GNOME_KEYRING_RESULT_OK) {
qWarning() << "GnomeKeyringPasswordBackend::updateLastUsed Cannot updated entry in keyring!";
return;
}
int index = m_allEntries.indexOf(entry);
if (index > -1) {
m_allEntries[index] = entry;
}
}
void GnomeKeyringPasswordBackend::removeEntry(const PasswordEntry &entry)
{
initialize();
GnomeKeyringResult result = gnome_keyring_item_delete_sync(GNOME_KEYRING_DEFAULT, entry.id.toUInt());
if (result != GNOME_KEYRING_RESULT_OK) {
qWarning() << "GnomeKeyringPasswordBackend::removeEntry Cannot remove entry from keyring!";
return;
}
int index = m_allEntries.indexOf(entry);
if (index > -1) {
m_allEntries.remove(index);
}
}
void GnomeKeyringPasswordBackend::removeAll()
{
initialize();
foreach (const PasswordEntry &entry, m_allEntries) {
removeEntry(entry);
}
m_allEntries.clear();
}
void GnomeKeyringPasswordBackend::initialize()
{
if (m_loaded) {
return;
}
GList* found;
GnomeKeyringResult result = gnome_keyring_find_itemsv_sync(GNOME_KEYRING_ITEM_GENERIC_SECRET, &found,
"application", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, "Falkon",
NULL);
if (result != GNOME_KEYRING_RESULT_OK && result != GNOME_KEYRING_RESULT_NO_MATCH) {
qWarning() << "GnomeKeyringPasswordBackend::initialize Cannot read items from keyring!";
return;
}
bool migrate = false;
if (result == GNOME_KEYRING_RESULT_NO_MATCH) {
result = gnome_keyring_find_itemsv_sync(GNOME_KEYRING_ITEM_GENERIC_SECRET, &found,
"application", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, "QupZilla",
NULL);
if (result != GNOME_KEYRING_RESULT_OK && result != GNOME_KEYRING_RESULT_NO_MATCH) {
qWarning() << "GnomeKeyringPasswordBackend::initialize Cannot read items from keyring!";
return;
}
if (result == GNOME_KEYRING_RESULT_OK) {
migrate = true;
}
}
GList* tmp = found;
while (tmp) {
GnomeKeyringFound* item = (GnomeKeyringFound*) tmp->data;
m_allEntries.append(createEntry(item));
tmp = tmp->next;
}
gnome_keyring_found_list_free(found);
if (migrate) {
for (PasswordEntry &entry : m_allEntries) {
storeEntry(entry);
}
}
m_loaded = true;
}

View File

@ -1,50 +0,0 @@
/* ============================================================
* GnomeKeyringPasswords - gnome-keyring support plugin for Falkon
* Copyright (C) 2013-2014 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#ifndef GNOMEKEYRINGPASSWORDBACKEND_H
#define GNOMEKEYRINGPASSWORDBACKEND_H
#include <QVector>
#include "passwordbackends/passwordbackend.h"
#include "passwordmanager.h"
class FALKON_EXPORT GnomeKeyringPasswordBackend : public PasswordBackend
{
public:
explicit GnomeKeyringPasswordBackend();
QString name() const;
QVector<PasswordEntry> getEntries(const QUrl &url);
QVector<PasswordEntry> getAllEntries();
void addEntry(const PasswordEntry &entry);
bool updateEntry(const PasswordEntry &entry);
void updateLastUsed(PasswordEntry &entry);
void removeEntry(const PasswordEntry &entry);
void removeAll();
private:
void initialize();
bool m_loaded;
QVector<PasswordEntry> m_allEntries;
};
#endif // GNOMEKEYRINGPASSWORDBACKEND_H

View File

@ -1,54 +0,0 @@
{
"Comment": "Provides support for storing passwords in gnome-keyring",
"Comment[ca@valencia]": "Proporciona suport per emmagatzemar les contrasenyes a l'anell de claus de Gnome",
"Comment[ca]": "Proporciona suport per emmagatzemar les contrasenyes a l'anell de claus de Gnome",
"Comment[cs]": "Poskytuje podporu pro ukládání hesel pomocí gnome-keyring",
"Comment[da]": "Giver understøttelse af lagring af adgangskoder i gnome-nøglring",
"Comment[de]": "Unterstützung für die Speicherung von Passwörtern in gnome-keyring",
"Comment[en_GB]": "Provides support for storing passwords in gnome-keyring",
"Comment[es]": "Implementa el almacenamiento de contraseñas en el anillo de claves de Gnome",
"Comment[fi]": "Tarjoaa tuen salasanojen tallentamiseksi Gnomen avainrenkaaseen",
"Comment[fr]": "Prise en charge de l'enregistrement de mots de passe au sein de gnome-keyring",
"Comment[gl]": "Permite almacenar contrasinais en gnome-keyring",
"Comment[id]": "Menyediakan dukungan untuk menyimpan sandi dalam gnome-keyring",
"Comment[it]": "Fornisce un supporto all'immagazzinamento delle password nel portachiavi di Gnome",
"Comment[nl]": "Biedt ondersteuning voor opslaan van GNOME-sleutelbos wachtwoorden",
"Comment[nn]": "Gjev støtte for lagring av passord i Gnome-nøkkelringen",
"Comment[pl]": "Zapewnia obsługę przechowywania haseł w pęku kluczy gnome",
"Comment[pt]": "Oferece o suporte para gravar as senhas no 'gnome-keyring'",
"Comment[pt_BR]": "Fornece suporte para armazenar senhas no gnome-keyring",
"Comment[sk]": "Poskytuje podporu pre ukladanie hesiel do Gnome kľúčenky",
"Comment[sv]": "Tillhandahåller stöd för att lagra lösenord i Gnome-nyckelring",
"Comment[uk]": "Забезпечує підтримку зберігання паролів у gnome-keyring",
"Comment[x-test]": "xxProvides support for storing passwords in gnome-keyringxx",
"Comment[zh_CN]": "提供在 gnome-keyring 中保存密码的支持",
"Icon": "base64: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",
"Name": "Gnome Keyring Passwords",
"Name[ca@valencia]": "Contrasenyes a l'anell de claus de Gnome",
"Name[ca]": "Contrasenyes a l'anell de claus de Gnome",
"Name[cs]": "Hesla z klíčenky Gnome",
"Name[da]": "Adgangskoder til Gnome-nøglering",
"Name[de]": "Passwörter für Gnome Keyring",
"Name[en_GB]": "Gnome Keyring Passwords",
"Name[es]": "Anillo de contraseñas de Gnome",
"Name[fi]": "Gnomen avainrenkaan salasankaat",
"Name[fr]": "Trousseau de clés de GNOME",
"Name[gl]": "Contrasinais do chaveiro de Gnome",
"Name[id]": "Gnome Keyring Passwords",
"Name[it]": "Portachiavi per le chiavi di Gnome",
"Name[nl]": "GNOME-sleutelbos wachtwoorden",
"Name[nn]": "Passord for Gnome-nøkkelring",
"Name[pl]": "Hasła pęku kluczy Gnome",
"Name[pt]": "Senhas no Porta-Chaves do Gnome",
"Name[pt_BR]": "Senhas do chaveiro do GNOME",
"Name[sk]": "Heslá Gnome kľúčenky",
"Name[sv]": "Gnome-nyckelring lösenord",
"Name[uk]": "Паролі сховища ключів Gnome",
"Name[x-test]": "xxGnome Keyring Passwordsxx",
"Name[zh_CN]": "Gnome 钥匙链密码",
"Name[zh_TW]": "GNOME 鑰匙圈密碼",
"X-Falkon-Author": "David Rosca",
"X-Falkon-Email": "nowrep@gmail.com",
"X-Falkon-Settings": "false",
"X-Falkon-Version": "0.1.0"
}

View File

@ -1,52 +0,0 @@
/* ============================================================
* GnomeKeyringPasswords - gnome-keyring support plugin for Falkon
* Copyright (C) 2013-2014 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#include "gnomekeyringplugin.h"
#include "gnomekeyringpasswordbackend.h"
#include "pluginproxy.h"
#include "browserwindow.h"
#include "../config.h"
#include "mainapplication.h"
#include "autofill.h"
#include "passwordmanager.h"
GnomeKeyringPlugin::GnomeKeyringPlugin()
: QObject()
, m_backend(0)
{
}
void GnomeKeyringPlugin::init(InitState state, const QString &settingsPath)
{
Q_UNUSED(state);
Q_UNUSED(settingsPath);
m_backend = new GnomeKeyringPasswordBackend;
mApp->autoFill()->passwordManager()->registerBackend(QSL("GnomeKeyring"), m_backend);
}
void GnomeKeyringPlugin::unload()
{
mApp->autoFill()->passwordManager()->unregisterBackend(m_backend);
delete m_backend;
}
bool GnomeKeyringPlugin::testPlugin()
{
// Require the version that the plugin was built with
return (Qz::VERSION == QLatin1String(FALKON_VERSION));
}

View File

@ -1,43 +0,0 @@
/* ============================================================
* GnomeKeyringPasswords - gnome-keyring support plugin for Falkon
* Copyright (C) 2013-2014 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#ifndef GNOMEKEYRINGPLUGIN_H
#define GNOMEKEYRINGPLUGIN_H
#include "plugininterface.h"
class GnomeKeyringPasswordBackend;
class GnomeKeyringPlugin : public QObject, public PluginInterface
{
Q_OBJECT
Q_INTERFACES(PluginInterface)
Q_PLUGIN_METADATA(IID "Falkon.Browser.plugin.GnomeKeyringPasswords" FILE "gnomekeyringpasswords.json")
public:
explicit GnomeKeyringPlugin();
void init(InitState state, const QString &settingsPath);
void unload();
bool testPlugin();
private:
GnomeKeyringPasswordBackend* m_backend;
};
#endif // GNOMEKEYRINGPLUGIN_H