From 41d00135af0d560a0110676c1cb115a18c3c756d Mon Sep 17 00:00:00 2001 From: varjolintu Date: Sun, 21 Apr 2024 08:56:38 +0300 Subject: [PATCH] Passkeys: Fix duplicate database selection --- src/browser/BrowserService.cpp | 9 +++++---- src/browser/BrowserService.h | 3 ++- src/gui/passkeys/PasskeyImporter.cpp | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp index c7f734c34..a3b97e145 100644 --- a/src/browser/BrowserService.cpp +++ b/src/browser/BrowserService.cpp @@ -666,7 +666,8 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public userId, publicKeyCredentials.key); } else { - addPasskeyToGroup(nullptr, + addPasskeyToGroup(db, + nullptr, origin, rpId, rpName, @@ -689,7 +690,7 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject& const QString& origin, const StringPairList& keyList) { - auto db = selectedDatabase(); + auto db = getDatabase(); if (!db) { return getPasskeyError(ERROR_KEEPASS_DATABASE_NOT_OPENED); } @@ -738,7 +739,8 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject& return getPasskeyError(ERROR_PASSKEYS_REQUEST_CANCELED); } -void BrowserService::addPasskeyToGroup(Group* group, +void BrowserService::addPasskeyToGroup(const QSharedPointer& db, + Group* group, const QString& url, const QString& rpId, const QString& rpName, @@ -749,7 +751,6 @@ void BrowserService::addPasskeyToGroup(Group* group, { // If no group provided, use the default browser group of the selected database if (!group) { - auto db = selectedDatabase(); if (!db) { return; } diff --git a/src/browser/BrowserService.h b/src/browser/BrowserService.h index 485b416bb..943e8bac1 100644 --- a/src/browser/BrowserService.h +++ b/src/browser/BrowserService.h @@ -94,7 +94,8 @@ public: QJsonObject showPasskeysAuthenticationPrompt(const QJsonObject& publicKeyOptions, const QString& origin, const StringPairList& keyList); - void addPasskeyToGroup(Group* group, + void addPasskeyToGroup(const QSharedPointer& db, + Group* group, const QString& url, const QString& rpId, const QString& rpName, diff --git a/src/gui/passkeys/PasskeyImporter.cpp b/src/gui/passkeys/PasskeyImporter.cpp index 77e37c689..da7e07dc7 100644 --- a/src/gui/passkeys/PasskeyImporter.cpp +++ b/src/gui/passkeys/PasskeyImporter.cpp @@ -152,7 +152,7 @@ void PasskeyImporter::showImportDialog(QSharedPointer& database, } browserService()->addPasskeyToGroup( - group, url, relyingParty, relyingParty, username, credentialId, userHandle, privateKey); + db, group, url, relyingParty, relyingParty, username, credentialId, userHandle, privateKey); } Group* PasskeyImporter::getDefaultGroup(QSharedPointer& database) const