From f49f62d3be793d2e7c04fd750a710c8204417dcf Mon Sep 17 00:00:00 2001 From: Laurent Erignoux Date: Sat, 25 Jul 2020 12:09:36 +0800 Subject: [PATCH] Add a best option to CLI command clip (#4489) The best option copy the password from the best match if only one matching entry exists. Adding clip best option documentation Adding unit tests on the new clip --best option --- docs/man/keepassxc-cli.1.adoc | 5 +++++ src/cli/Clip.cpp | 28 +++++++++++++++++++++++++++- src/cli/Clip.h | 1 + tests/TestCli.cpp | 15 +++++++++++++++ tests/TestCli.h | 1 + tests/data/NewDatabaseMulti.kdbx | Bin 0 -> 48942 bytes 6 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 tests/data/NewDatabaseMulti.kdbx diff --git a/docs/man/keepassxc-cli.1.adoc b/docs/man/keepassxc-cli.1.adoc index e5d0745a6..c0b0deaa7 100644 --- a/docs/man/keepassxc-cli.1.adoc +++ b/docs/man/keepassxc-cli.1.adoc @@ -207,6 +207,11 @@ The same password generation options as documented for the generate command can Copies the current TOTP instead of the specified attribute to the clipboard. Will report an error if no TOTP is configured for the entry. +*-b*, *--best*:: + Try to find and copy to clipboard a unique entry matching the input (similar to *-locate*) + If a unique matching entry is found it will be copied to the clipboard. + If multiple entries are found they will be listed to refine the search. (no clip performed) + === Create options *-k*, *--set-key-file* <__path__>:: Set the key file for the database. diff --git a/src/cli/Clip.cpp b/src/cli/Clip.cpp index 1bd5cc4ba..0e2e6fb9b 100644 --- a/src/cli/Clip.cpp +++ b/src/cli/Clip.cpp @@ -25,6 +25,7 @@ #include "cli/Utils.h" #include "core/Database.h" #include "core/Entry.h" +#include "core/Global.h" #include "core/Group.h" const QCommandLineOption Clip::AttributeOption = QCommandLineOption( @@ -39,12 +40,18 @@ const QCommandLineOption Clip::TotpOption = << "totp", QObject::tr("Copy the current TOTP to the clipboard (equivalent to \"-a totp\").")); +const QCommandLineOption Clip::BestMatchOption = QCommandLineOption( + QStringList() << "b" + << "best-match", + QObject::tr("Try to find the unique entry matching, will fail and display the list of matches otherwise.")); + Clip::Clip() { name = QString("clip"); description = QObject::tr("Copy an entry's attribute to the clipboard."); options.append(Clip::AttributeOption); options.append(Clip::TotpOption); + options.append(Clip::BestMatchOption); positionalArguments.append( {QString("entry"), QObject::tr("Path of the entry to clip.", "clip = copy to clipboard"), QString("")}); optionalArguments.append( @@ -57,12 +64,31 @@ int Clip::executeWithDatabase(QSharedPointer database, QSharedPointer< auto& err = Utils::STDERR; const QStringList args = parser->positionalArguments(); - const QString& entryPath = args.at(1); + QString bestEntryPath; + QString timeout; if (args.size() == 3) { timeout = args.at(2); } + if (parser->isSet(Clip::BestMatchOption)) { + QStringList results = database->rootGroup()->locate(args.at(1)); + if (results.count() > 1) { + err << QObject::tr("Multiple entries matching:") << endl; + for (const QString& result : asConst(results)) { + err << result << endl; + } + return EXIT_FAILURE; + } else { + bestEntryPath = (results.isEmpty()) ? args.at(1) : results[0]; + out << QObject::tr("Matching \"%1\" entry used.").arg(bestEntryPath) << endl; + } + } else { + bestEntryPath = args.at(1); + } + + const QString& entryPath = bestEntryPath; + int timeoutSeconds = 0; if (!timeout.isEmpty() && timeout.toInt() <= 0) { err << QObject::tr("Invalid timeout value %1.").arg(timeout) << endl; diff --git a/src/cli/Clip.h b/src/cli/Clip.h index 291e63295..a8afb6951 100644 --- a/src/cli/Clip.h +++ b/src/cli/Clip.h @@ -29,6 +29,7 @@ public: static const QCommandLineOption AttributeOption; static const QCommandLineOption TotpOption; + static const QCommandLineOption BestMatchOption; }; #endif // KEEPASSXC_CLIP_H diff --git a/tests/TestCli.cpp b/tests/TestCli.cpp index 348afb670..fb0bb5918 100644 --- a/tests/TestCli.cpp +++ b/tests/TestCli.cpp @@ -86,6 +86,9 @@ void TestCli::init() m_dbFile2.reset(new TemporaryFile()); m_dbFile2->copyFromFile(file.arg("NewDatabase2.kdbx")); + m_dbFileMulti.reset(new TemporaryFile()); + m_dbFileMulti->copyFromFile(file.arg("NewDatabaseMulti.kdbx")); + m_xmlFile.reset(new TemporaryFile()); m_xmlFile->copyFromFile(file.arg("NewDatabase.xml")); @@ -115,6 +118,7 @@ void TestCli::cleanup() { m_dbFile.reset(); m_dbFile2.reset(); + m_dbFileMulti.reset(); m_keyFileProtectedDbFile.reset(); m_keyFileProtectedNoPasswordDbFile.reset(); m_yubiKeyProtectedDbFile.reset(); @@ -504,6 +508,17 @@ void TestCli::testClip() setInput("a"); execCmd(clipCmd, {"clip", m_dbFile2->fileName(), "--attribute", "Username", "--totp", "/Sample Entry"}); QVERIFY(m_stderr->readAll().contains("ERROR: Please specify one of --attribute or --totp, not both.\n")); + + // Best option + setInput("a"); + execCmd(clipCmd, {"clip", m_dbFileMulti->fileName(), "Multi", "-b"}); + QByteArray errorChoices = m_stderr->readAll(); + QVERIFY(errorChoices.contains("Multi Entry 1")); + QVERIFY(errorChoices.contains("Multi Entry 2")); + + setInput("a"); + execCmd(clipCmd, {"clip", m_dbFileMulti->fileName(), "Entry 2", "-b"}); + QTRY_COMPARE(clipboard->text(), QString("Password2")); } void TestCli::testCreate() diff --git a/tests/TestCli.h b/tests/TestCli.h index a8e6eabbb..066e28e58 100644 --- a/tests/TestCli.h +++ b/tests/TestCli.h @@ -83,6 +83,7 @@ private slots: private: QScopedPointer m_dbFile; QScopedPointer m_dbFile2; + QScopedPointer m_dbFileMulti; QScopedPointer m_xmlFile; QScopedPointer m_keyFileProtectedDbFile; QScopedPointer m_keyFileProtectedNoPasswordDbFile; diff --git a/tests/data/NewDatabaseMulti.kdbx b/tests/data/NewDatabaseMulti.kdbx new file mode 100644 index 0000000000000000000000000000000000000000..b447d6258dfe0a1682a79c4172251d990d68d751 GIT binary patch literal 48942 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�F0$8N5HrBl*Jfh3(Z96 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�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 literal 0 HcmV?d00001