Add support for skipping Auto-Submit with Browser Integration

This commit is contained in:
varjolintu 2019-08-15 12:35:11 +03:00 committed by Jonathan White
parent e5295b4eb0
commit a93b22f89a
5 changed files with 159 additions and 0 deletions

View file

@ -50,6 +50,9 @@ static int KEEPASSXCBROWSER_DEFAULT_ICON = 1;
const char BrowserService::LEGACY_ASSOCIATE_KEY_PREFIX[] = "Public Key: ";
static const char KEEPASSHTTP_NAME[] = "KeePassHttp Settings";
static const char KEEPASSHTTP_GROUP_NAME[] = "KeePassHttp Passwords";
// Extra entry related options saved in custom data
const char BrowserService::OPTION_SKIP_AUTO_SUBMIT[] = "BrowserSkipAutoSubmit";
const char BrowserService::OPTION_HIDE_ENTRY[] = "BrowserHideEntry";
BrowserService::BrowserService(DatabaseTabWidget* parent)
: m_dbTabWidget(parent)
@ -375,6 +378,11 @@ QJsonArray BrowserService::findMatchingEntries(const QString& id,
QList<Entry*> pwEntriesToConfirm;
QList<Entry*> pwEntries;
for (Entry* entry : searchEntries(url, keyList)) {
if (entry->customData()->contains(BrowserService::OPTION_HIDE_ENTRY) &&
entry->customData()->value(BrowserService::OPTION_HIDE_ENTRY) == "true") {
continue;
}
// HTTP Basic Auth always needs a confirmation
if (!ignoreHttpAuth && httpAuth) {
pwEntriesToConfirm.append(entry);
@ -839,6 +847,10 @@ QJsonObject BrowserService::prepareEntry(const Entry* entry)
res["expired"] = "true";
}
if (entry->customData()->contains(BrowserService::OPTION_SKIP_AUTO_SUBMIT)) {
res["skipAutoSubmit"] = entry->customData()->value(BrowserService::OPTION_SKIP_AUTO_SUBMIT);
}
if (browserSettings()->supportKphFields()) {
const EntryAttributes* attr = entry->attributes();
QJsonArray stringFields;