From 94ace985e70b8daeb5960bebb1d3db6fc2dad7c4 Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Mon, 18 Mar 2024 07:45:31 -0400 Subject: [PATCH] Preserve Secret Service exposed group setting on merge * Fixes #9371 - adds secret service custom data key to the list of protected custom data (will not be overwritten on merge) --- src/core/CustomData.cpp | 2 +- src/fdosecrets/FdoSecretsSettings.cpp | 18 ++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/core/CustomData.cpp b/src/core/CustomData.cpp index e005766326..354dbf7d6b 100644 --- a/src/core/CustomData.cpp +++ b/src/core/CustomData.cpp @@ -190,7 +190,7 @@ void CustomData::updateLastModified(QDateTime lastModified) bool CustomData::isProtected(const QString& key) const { - return key.startsWith(CustomData::BrowserKeyPrefix) || key.startsWith(CustomData::Created); + return key.startsWith(BrowserKeyPrefix) || key == Created || key == FdoSecretsExposedGroup; } bool CustomData::isAutoGenerated(const QString& key) const diff --git a/src/fdosecrets/FdoSecretsSettings.cpp b/src/fdosecrets/FdoSecretsSettings.cpp index 2f1e951829..d24bc69a12 100644 --- a/src/fdosecrets/FdoSecretsSettings.cpp +++ b/src/fdosecrets/FdoSecretsSettings.cpp @@ -21,15 +21,6 @@ #include "core/Database.h" #include "core/Metadata.h" -namespace Keys -{ - namespace Db - { - constexpr auto FdoSecretsExposedGroup = "FDO_SECRETS_EXPOSED_GROUP"; - } // namespace Db - -} // namespace Keys - namespace FdoSecrets { @@ -98,20 +89,19 @@ namespace FdoSecrets return exposedGroup(db.data()); } - void FdoSecretsSettings::setExposedGroup(const QSharedPointer& db, - const QUuid& group) // clazy:exclude=function-args-by-value + void FdoSecretsSettings::setExposedGroup(const QSharedPointer& db, const QUuid& group) { setExposedGroup(db.data(), group); } QUuid FdoSecretsSettings::exposedGroup(Database* db) const { - return {db->metadata()->customData()->value(Keys::Db::FdoSecretsExposedGroup)}; + return {db->metadata()->customData()->value(CustomData::FdoSecretsExposedGroup)}; } - void FdoSecretsSettings::setExposedGroup(Database* db, const QUuid& group) // clazy:exclude=function-args-by-value + void FdoSecretsSettings::setExposedGroup(Database* db, const QUuid& group) { - db->metadata()->customData()->set(Keys::Db::FdoSecretsExposedGroup, group.toString()); + db->metadata()->customData()->set(CustomData::FdoSecretsExposedGroup, group.toString()); } } // namespace FdoSecrets