From fed8a56098cc7d2b5bb0ef42adae7672b3675b6b Mon Sep 17 00:00:00 2001 From: varjolintu Date: Thu, 9 May 2019 08:46:16 +0300 Subject: [PATCH] Add option for returning expired credentials --- src/browser/BrowserOptionDialog.cpp | 2 ++ src/browser/BrowserOptionDialog.ui | 10 ++++++++++ src/browser/BrowserService.cpp | 6 +++++- src/browser/BrowserSettings.cpp | 10 ++++++++++ src/browser/BrowserSettings.h | 2 ++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/browser/BrowserOptionDialog.cpp b/src/browser/BrowserOptionDialog.cpp index 9eecc63f..e212fc6b 100644 --- a/src/browser/BrowserOptionDialog.cpp +++ b/src/browser/BrowserOptionDialog.cpp @@ -120,6 +120,7 @@ void BrowserOptionDialog::loadSettings() m_ui->useCustomProxy->setChecked(settings->useCustomProxy()); m_ui->customProxyLocation->setText(settings->customProxyLocation()); m_ui->updateBinaryPath->setChecked(settings->updateBinaryPath()); + m_ui->allowExpiredCredentials->setChecked(settings->allowExpiredCredentials()); m_ui->chromeSupport->setChecked(settings->chromeSupport()); m_ui->chromiumSupport->setChecked(settings->chromiumSupport()); m_ui->firefoxSupport->setChecked(settings->firefoxSupport()); @@ -176,6 +177,7 @@ void BrowserOptionDialog::saveSettings() settings->setCustomProxyLocation(m_ui->customProxyLocation->text()); settings->setUpdateBinaryPath(m_ui->updateBinaryPath->isChecked()); + settings->setAllowExpiredCredentials(m_ui->allowExpiredCredentials->isChecked()); settings->setAlwaysAllowAccess(m_ui->alwaysAllowAccess->isChecked()); settings->setAlwaysAllowUpdate(m_ui->alwaysAllowUpdate->isChecked()); settings->setHttpAuthPermission(m_ui->httpAuthPermission->isChecked()); diff --git a/src/browser/BrowserOptionDialog.ui b/src/browser/BrowserOptionDialog.ui index 50fd9d20..0229649f 100755 --- a/src/browser/BrowserOptionDialog.ui +++ b/src/browser/BrowserOptionDialog.ui @@ -219,6 +219,16 @@ + + + + Returns expired credentials. String [expired] is added to the title. + + + &Allow returning expired credentials. + + + diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp index 112a7cda..2ab7682e 100644 --- a/src/browser/BrowserService.cpp +++ b/src/browser/BrowserService.cpp @@ -818,6 +818,10 @@ QJsonObject BrowserService::prepareEntry(const Entry* entry) res["totp"] = entry->totp(); } + if (entry->isExpired()) { + res["expired"] = "true"; + } + if (browserSettings()->supportKphFields()) { const EntryAttributes* attr = entry->attributes(); QJsonArray stringFields; @@ -841,7 +845,7 @@ BrowserService::checkAccess(const Entry* entry, const QString& host, const QStri return Unknown; } if (entry->isExpired()) { - return Denied; + return browserSettings()->allowExpiredCredentials() ? Allowed : Denied; } if ((config.isAllowed(host)) && (submitHost.isEmpty() || config.isAllowed(submitHost))) { return Allowed; diff --git a/src/browser/BrowserSettings.cpp b/src/browser/BrowserSettings.cpp index dd74dc1c..f44c5e80 100644 --- a/src/browser/BrowserSettings.cpp +++ b/src/browser/BrowserSettings.cpp @@ -194,6 +194,16 @@ void BrowserSettings::setUpdateBinaryPath(bool enabled) config()->set("Browser/UpdateBinaryPath", enabled); } +bool BrowserSettings::allowExpiredCredentials() +{ + return config()->get("Browser/AllowExpiredCredentials", false).toBool(); +} + +void BrowserSettings::setAllowExpiredCredentials(bool enabled) +{ + config()->set("Browser/AllowExpiredCredentials", enabled); +} + bool BrowserSettings::chromeSupport() { return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::CHROME); diff --git a/src/browser/BrowserSettings.h b/src/browser/BrowserSettings.h index ba74ff53..b47e9286 100644 --- a/src/browser/BrowserSettings.h +++ b/src/browser/BrowserSettings.h @@ -64,6 +64,8 @@ public: void setCustomProxyLocation(const QString& location); bool updateBinaryPath(); void setUpdateBinaryPath(bool enabled); + bool allowExpiredCredentials(); + void setAllowExpiredCredentials(bool enabled); bool chromeSupport(); void setChromeSupport(bool enabled); bool chromiumSupport();