Passkeys: Fix duplicate database selection

This commit is contained in:
varjolintu 2024-04-21 08:56:38 +03:00 committed by Jonathan White
parent d87f0030a3
commit 50eec240b4
No known key found for this signature in database
GPG Key ID: 440FC65F2E0C6E01
3 changed files with 8 additions and 6 deletions

View File

@ -617,7 +617,8 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public
userId,
publicKeyCredentials.key);
} else {
addPasskeyToGroup(nullptr,
addPasskeyToGroup(db,
nullptr,
origin,
rpId,
rpName,
@ -640,7 +641,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);
}
@ -689,7 +690,8 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject&
return getPasskeyError(ERROR_PASSKEYS_REQUEST_CANCELED);
}
void BrowserService::addPasskeyToGroup(Group* group,
void BrowserService::addPasskeyToGroup(const QSharedPointer<Database>& db,
Group* group,
const QString& url,
const QString& rpId,
const QString& rpName,
@ -700,7 +702,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;
}

View File

@ -93,7 +93,8 @@ public:
QJsonObject showPasskeysAuthenticationPrompt(const QJsonObject& publicKeyOptions,
const QString& origin,
const StringPairList& keyList);
void addPasskeyToGroup(Group* group,
void addPasskeyToGroup(const QSharedPointer<Database>& db,
Group* group,
const QString& url,
const QString& rpId,
const QString& rpName,

View File

@ -152,7 +152,7 @@ void PasskeyImporter::showImportDialog(QSharedPointer<Database>& 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>& database) const