diff options
Diffstat (limited to 'src/browser/BrowserSettings.cpp')
-rw-r--r-- | src/browser/BrowserSettings.cpp | 252 |
1 files changed, 112 insertions, 140 deletions
diff --git a/src/browser/BrowserSettings.cpp b/src/browser/BrowserSettings.cpp index 9cb4e0735..93b5c138b 100644 --- a/src/browser/BrowserSettings.cpp +++ b/src/browser/BrowserSettings.cpp @@ -19,6 +19,7 @@ #include "BrowserSettings.h" #include "core/Config.h" +#include "core/PasswordHealth.h" BrowserSettings* BrowserSettings::m_instance(nullptr); @@ -33,62 +34,62 @@ BrowserSettings* BrowserSettings::instance() bool BrowserSettings::isEnabled() { - return config()->get("Browser/Enabled", false).toBool(); + return config()->get(Config::Browser_Enabled).toBool(); } void BrowserSettings::setEnabled(bool enabled) { - config()->set("Browser/Enabled", enabled); + config()->set(Config::Browser_Enabled, enabled); } bool BrowserSettings::showNotification() { - return config()->get("Browser/ShowNotification", true).toBool(); + return config()->get(Config::Browser_ShowNotification).toBool(); } void BrowserSettings::setShowNotification(bool showNotification) { - config()->set("Browser/ShowNotification", showNotification); + config()->set(Config::Browser_ShowNotification, showNotification); } bool BrowserSettings::bestMatchOnly() { - return config()->get("Browser/BestMatchOnly", false).toBool(); + return config()->get(Config::Browser_BestMatchOnly).toBool(); } void BrowserSettings::setBestMatchOnly(bool bestMatchOnly) { - config()->set("Browser/BestMatchOnly", bestMatchOnly); + config()->set(Config::Browser_BestMatchOnly, bestMatchOnly); } bool BrowserSettings::unlockDatabase() { - return config()->get("Browser/UnlockDatabase", true).toBool(); + return config()->get(Config::Browser_UnlockDatabase).toBool(); } void BrowserSettings::setUnlockDatabase(bool unlockDatabase) { - config()->set("Browser/UnlockDatabase", unlockDatabase); + config()->set(Config::Browser_UnlockDatabase, unlockDatabase); } bool BrowserSettings::matchUrlScheme() { - return config()->get("Browser/MatchUrlScheme", true).toBool(); + return config()->get(Config::Browser_MatchUrlScheme).toBool(); } void BrowserSettings::setMatchUrlScheme(bool matchUrlScheme) { - config()->set("Browser/MatchUrlScheme", matchUrlScheme); + config()->set(Config::Browser_MatchUrlScheme, matchUrlScheme); } bool BrowserSettings::sortByUsername() { - return config()->get("Browser/SortByUsername", false).toBool(); + return config()->get(Config::Browser_SortByUsername).toBool(); } void BrowserSettings::setSortByUsername(bool sortByUsername) { - config()->set("Browser/SortByUsername", sortByUsername); + config()->set(Config::Browser_SortByUsername, sortByUsername); } bool BrowserSettings::sortByTitle() @@ -103,382 +104,359 @@ void BrowserSettings::setSortByTitle(bool sortByUsertitle) bool BrowserSettings::alwaysAllowAccess() { - return config()->get("Browser/AlwaysAllowAccess", false).toBool(); + return config()->get(Config::Browser_AlwaysAllowAccess).toBool(); } void BrowserSettings::setAlwaysAllowAccess(bool alwaysAllowAccess) { - config()->set("Browser/AlwaysAllowAccess", alwaysAllowAccess); + config()->set(Config::Browser_AlwaysAllowAccess, alwaysAllowAccess); } bool BrowserSettings::alwaysAllowUpdate() { - return config()->get("Browser/AlwaysAllowUpdate", false).toBool(); + return config()->get(Config::Browser_AlwaysAllowUpdate).toBool(); } void BrowserSettings::setAlwaysAllowUpdate(bool alwaysAllowUpdate) { - config()->set("Browser/AlwaysAllowUpdate", alwaysAllowUpdate); + config()->set(Config::Browser_AlwaysAllowUpdate, alwaysAllowUpdate); } bool BrowserSettings::httpAuthPermission() { - return config()->get("Browser/HttpAuthPermission", false).toBool(); + return config()->get(Config::Browser_HttpAuthPermission).toBool(); } void BrowserSettings::setHttpAuthPermission(bool httpAuthPermission) { - config()->set("Browser/HttpAuthPermission", httpAuthPermission); + config()->set(Config::Browser_HttpAuthPermission, httpAuthPermission); } bool BrowserSettings::searchInAllDatabases() { - return config()->get("Browser/SearchInAllDatabases", false).toBool(); + return config()->get(Config::Browser_SearchInAllDatabases).toBool(); } void BrowserSettings::setSearchInAllDatabases(bool searchInAllDatabases) { - config()->set("Browser/SearchInAllDatabases", searchInAllDatabases); + config()->set(Config::Browser_SearchInAllDatabases, searchInAllDatabases); } bool BrowserSettings::supportKphFields() { - return config()->get("Browser/SupportKphFields", true).toBool(); + return config()->get(Config::Browser_SupportKphFields).toBool(); } void BrowserSettings::setSupportKphFields(bool supportKphFields) { - config()->set("Browser/SupportKphFields", supportKphFields); + config()->set(Config::Browser_SupportKphFields, supportKphFields); } bool BrowserSettings::noMigrationPrompt() { - return config()->get("Browser/NoMigrationPrompt", false).toBool(); + return config()->get(Config::Browser_NoMigrationPrompt).toBool(); } void BrowserSettings::setNoMigrationPrompt(bool prompt) { - config()->set("Browser/NoMigrationPrompt", prompt); -} - -bool BrowserSettings::supportBrowserProxy() -{ - return config()->get("Browser/SupportBrowserProxy", true).toBool(); -} - -void BrowserSettings::setSupportBrowserProxy(bool enabled) -{ - config()->set("Browser/SupportBrowserProxy", enabled); + config()->set(Config::Browser_NoMigrationPrompt, prompt); } bool BrowserSettings::useCustomProxy() { - return config()->get("Browser/UseCustomProxy", false).toBool(); + return config()->get(Config::Browser_UseCustomProxy).toBool(); } void BrowserSettings::setUseCustomProxy(bool enabled) { - config()->set("Browser/UseCustomProxy", enabled); + config()->set(Config::Browser_UseCustomProxy, enabled); } QString BrowserSettings::customProxyLocation() { - if (!useCustomProxy()) { - return QString(); - } - return config()->get("Browser/CustomProxyLocation", "").toString(); + return config()->get(Config::Browser_CustomProxyLocation).toString(); } void BrowserSettings::setCustomProxyLocation(const QString& location) { - config()->set("Browser/CustomProxyLocation", location); + config()->set(Config::Browser_CustomProxyLocation, location); } -bool BrowserSettings::updateBinaryPath() +bool BrowserSettings::customBrowserSupport() { - return config()->get("Browser/UpdateBinaryPath", true).toBool(); + return config()->get(Config::Browser_UseCustomBrowser).toBool(); } -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) +void BrowserSettings::setCustomBrowserSupport(bool enabled) { - config()->set("Browser/AllowExpiredCredentials", enabled); + config()->set(Config::Browser_UseCustomBrowser, enabled); } -bool BrowserSettings::chromeSupport() +int BrowserSettings::customBrowserType() { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::CHROME); + return config()->get(Config::Browser_CustomBrowserType).toInt(); } -void BrowserSettings::setChromeSupport(bool enabled) +void BrowserSettings::setCustomBrowserType(int type) { - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::CHROME, enabled, supportBrowserProxy(), customProxyLocation()); + config()->set(Config::Browser_CustomBrowserType, type); } -bool BrowserSettings::chromiumSupport() +QString BrowserSettings::customBrowserLocation() { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::CHROMIUM); + return config()->get(Config::Browser_CustomBrowserLocation).toString(); } -void BrowserSettings::setChromiumSupport(bool enabled) +void BrowserSettings::setCustomBrowserLocation(const QString& location) { - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::CHROMIUM, enabled, supportBrowserProxy(), customProxyLocation()); + config()->set(Config::Browser_CustomBrowserLocation, location); } -bool BrowserSettings::firefoxSupport() +QString BrowserSettings::proxyLocation() { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::FIREFOX); + return m_nativeMessageInstaller.getProxyPath(); } -void BrowserSettings::setFirefoxSupport(bool enabled) +#ifdef QT_DEBUG +QString BrowserSettings::customExtensionId() { - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::FIREFOX, enabled, supportBrowserProxy(), customProxyLocation()); + return config()->get(Config::Browser_CustomExtensionId).toString(); } -bool BrowserSettings::vivaldiSupport() +void BrowserSettings::setCustomExtensionId(const QString& id) { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::VIVALDI); + config()->set(Config::Browser_CustomExtensionId, id); } +#endif -void BrowserSettings::setVivaldiSupport(bool enabled) -{ - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::VIVALDI, enabled, supportBrowserProxy(), customProxyLocation()); -} - -bool BrowserSettings::braveSupport() +bool BrowserSettings::updateBinaryPath() { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::BRAVE); + return config()->get(Config::Browser_UpdateBinaryPath).toBool(); } -void BrowserSettings::setBraveSupport(bool enabled) +void BrowserSettings::setUpdateBinaryPath(bool enabled) { - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::BRAVE, enabled, supportBrowserProxy(), customProxyLocation()); + config()->set(Config::Browser_UpdateBinaryPath, enabled); } -bool BrowserSettings::torBrowserSupport() +bool BrowserSettings::allowExpiredCredentials() { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::TOR_BROWSER); + return config()->get(Config::Browser_AllowExpiredCredentials).toBool(); } -void BrowserSettings::setTorBrowserSupport(bool enabled) +void BrowserSettings::setAllowExpiredCredentials(bool enabled) { - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::TOR_BROWSER, enabled, supportBrowserProxy(), customProxyLocation()); + config()->set(Config::Browser_AllowExpiredCredentials, enabled); } -bool BrowserSettings::edgeSupport() +bool BrowserSettings::browserSupport(BrowserShared::SupportedBrowsers browser) { - return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::EDGE); + return m_nativeMessageInstaller.isBrowserEnabled(browser); } -void BrowserSettings::setEdgeSupport(bool enabled) +void BrowserSettings::setBrowserSupport(BrowserShared::SupportedBrowsers browser, bool enabled) { - m_hostInstaller.installBrowser( - HostInstaller::SupportedBrowsers::EDGE, enabled, supportBrowserProxy(), customProxyLocation()); + m_nativeMessageInstaller.setBrowserEnabled(browser, enabled); } bool BrowserSettings::passwordUseNumbers() { - return config()->get("generator/Numbers", PasswordGenerator::DefaultNumbers).toBool(); + return config()->get(Config::PasswordGenerator_Numbers).toBool(); } void BrowserSettings::setPasswordUseNumbers(bool useNumbers) { - config()->set("generator/Numbers", useNumbers); + config()->set(Config::PasswordGenerator_Numbers, useNumbers); } bool BrowserSettings::passwordUseLowercase() { - return config()->get("generator/LowerCase", PasswordGenerator::DefaultLower).toBool(); + return config()->get(Config::PasswordGenerator_LowerCase).toBool(); } void BrowserSettings::setPasswordUseLowercase(bool useLowercase) { - config()->set("generator/LowerCase", useLowercase); + config()->set(Config::PasswordGenerator_LowerCase, useLowercase); } bool BrowserSettings::passwordUseUppercase() { - return config()->get("generator/UpperCase", PasswordGenerator::DefaultUpper).toBool(); + return config()->get(Config::PasswordGenerator_UpperCase).toBool(); } void BrowserSettings::setPasswordUseUppercase(bool useUppercase) { - config()->set("generator/UpperCase", useUppercase); + config()->set(Config::PasswordGenerator_UpperCase, useUppercase); } bool BrowserSettings::passwordUseSpecial() { - return config()->get("generator/SpecialChars", PasswordGenerator::DefaultSpecial).toBool(); + return config()->get(Config::PasswordGenerator_SpecialChars).toBool(); } void BrowserSettings::setPasswordUseSpecial(bool useSpecial) { - config()->set("generator/SpecialChars", useSpecial); + config()->set(Config::PasswordGenerator_SpecialChars, useSpecial); } bool BrowserSettings::passwordUseBraces() { - return config()->get("generator/Braces", PasswordGenerator::DefaultBraces).toBool(); + return config()->get(Config::PasswordGenerator_Braces).toBool(); } void BrowserSettings::setPasswordUseBraces(bool useBraces) { - config()->set("generator/Braces", useBraces); + config()->set(Config::PasswordGenerator_Braces, useBraces); } bool BrowserSettings::passwordUsePunctuation() { - return config()->get("generator/Punctuation", PasswordGenerator::DefaultQuotes).toBool(); + return config()->get(Config::PasswordGenerator_Punctuation).toBool(); } void BrowserSettings::setPasswordUsePunctuation(bool usePunctuation) { - config()->set("generator/Punctuation", usePunctuation); + config()->set(Config::PasswordGenerator_Punctuation, usePunctuation); } bool BrowserSettings::passwordUseQuotes() { - return config()->get("generator/Quotes", PasswordGenerator::DefaultQuotes).toBool(); + return config()->get(Config::PasswordGenerator_Quotes).toBool(); } void BrowserSettings::setPasswordUseQuotes(bool useQuotes) { - config()->set("generator/Quotes", useQuotes); + config()->set(Config::PasswordGenerator_Quotes, useQuotes); } bool BrowserSettings::passwordUseDashes() { - return config()->get("generator/Dashes", PasswordGenerator::DefaultDashes).toBool(); + return config()->get(Config::PasswordGenerator_Dashes).toBool(); } void BrowserSettings::setPasswordUseDashes(bool useDashes) { - config()->set("generator/Dashes", useDashes); + config()->set(Config::PasswordGenerator_Dashes, useDashes); } bool BrowserSettings::passwordUseMath() { - return config()->get("generator/Math", PasswordGenerator::DefaultMath).toBool(); + return config()->get(Config::PasswordGenerator_Math).toBool(); } void BrowserSettings::setPasswordUseMath(bool useMath) { - config()->set("generator/Math", useMath); + config()->set(Config::PasswordGenerator_Math, useMath); } bool BrowserSettings::passwordUseLogograms() { - return config()->get("generator/Logograms", PasswordGenerator::DefaultLogograms).toBool(); + return config()->get(Config::PasswordGenerator_Logograms).toBool(); } void BrowserSettings::setPasswordUseLogograms(bool useLogograms) { - config()->set("generator/Logograms", useLogograms); + config()->set(Config::PasswordGenerator_Logograms, useLogograms); } bool BrowserSettings::passwordUseEASCII() { - return config()->get("generator/EASCII", PasswordGenerator::DefaultEASCII).toBool(); + return config()->get(Config::PasswordGenerator_EASCII).toBool(); } void BrowserSettings::setPasswordUseEASCII(bool useEASCII) { - config()->set("generator/EASCII", useEASCII); + config()->set(Config::PasswordGenerator_EASCII, useEASCII); } bool BrowserSettings::advancedMode() { - return config()->get("generator/AdvancedMode", PasswordGenerator::DefaultAdvancedMode).toBool(); + return config()->get(Config::PasswordGenerator_AdvancedMode).toBool(); } void BrowserSettings::setAdvancedMode(bool advancedMode) { - config()->set("generator/AdvancedMode", advancedMode); + config()->set(Config::PasswordGenerator_AdvancedMode, advancedMode); +} + +QString BrowserSettings::passwordAdditionalChars() +{ + return config()->get(Config::PasswordGenerator_AdditionalChars).toString(); +} + +void BrowserSettings::setPasswordAdditionalChars(const QString& chars) +{ + config()->set(Config::PasswordGenerator_AdditionalChars, chars); } QString BrowserSettings::passwordExcludedChars() { - return config()->get("generator/ExcludedChars", PasswordGenerator::DefaultExcludedChars).toString(); + return config()->get(Config::PasswordGenerator_ExcludedChars).toString(); } void BrowserSettings::setPasswordExcludedChars(const QString& chars) { - config()->set("generator/ExcludedChars", chars); + config()->set(Config::PasswordGenerator_ExcludedChars, chars); } int BrowserSettings::passPhraseWordCount() { - return config()->get("generator/WordCount", PassphraseGenerator::DefaultWordCount).toInt(); + return config()->get(Config::PasswordGenerator_WordCount).toInt(); } void BrowserSettings::setPassPhraseWordCount(int wordCount) { - config()->set("generator/WordCount", wordCount); + config()->set(Config::PasswordGenerator_WordCount, wordCount); } QString BrowserSettings::passPhraseWordSeparator() { - return config()->get("generator/WordSeparator", PassphraseGenerator::DefaultSeparator).toString(); + return config()->get(Config::PasswordGenerator_WordSeparator).toString(); } void BrowserSettings::setPassPhraseWordSeparator(const QString& separator) { - config()->set("generator/WordSeparator", separator); + config()->set(Config::PasswordGenerator_WordSeparator, separator); } int BrowserSettings::generatorType() { - return config()->get("generator/Type", 0).toInt(); + return config()->get(Config::PasswordGenerator_Type).toInt(); } void BrowserSettings::setGeneratorType(int type) { - config()->set("generator/Type", type); + config()->set(Config::PasswordGenerator_Type, type); } bool BrowserSettings::passwordEveryGroup() { - return config()->get("generator/EnsureEvery", PasswordGenerator::DefaultFromEveryGroup).toBool(); + return config()->get(Config::PasswordGenerator_EnsureEvery).toBool(); } void BrowserSettings::setPasswordEveryGroup(bool everyGroup) { - config()->get("generator/EnsureEvery", everyGroup); + config()->set(Config::PasswordGenerator_EnsureEvery, everyGroup); } bool BrowserSettings::passwordExcludeAlike() { - return config()->get("generator/ExcludeAlike", PasswordGenerator::DefaultLookAlike).toBool(); + return config()->get(Config::PasswordGenerator_ExcludeAlike).toBool(); } void BrowserSettings::setPasswordExcludeAlike(bool excludeAlike) { - config()->set("generator/ExcludeAlike", excludeAlike); + config()->set(Config::PasswordGenerator_ExcludeAlike, excludeAlike); } int BrowserSettings::passwordLength() { - return config()->get("generator/Length", PasswordGenerator::DefaultLength).toInt(); + return config()->get(Config::PasswordGenerator_Length).toInt(); } void BrowserSettings::setPasswordLength(int length) { - config()->set("generator/Length", length); + config()->set(Config::PasswordGenerator_Length, length); m_passwordGenerator.setLength(length); } @@ -541,7 +519,7 @@ QJsonObject BrowserSettings::generatePassword() m_passwordGenerator.setCharClasses(passwordCharClasses()); m_passwordGenerator.setFlags(passwordGeneratorFlags()); const QString pw = m_passwordGenerator.generatePassword(); - password["entropy"] = m_passwordGenerator.estimateEntropy(pw); + password["entropy"] = PasswordHealth(pw).entropy(); password["password"] = pw; } else { m_passPhraseGenerator.setWordCount(passPhraseWordCount()); @@ -552,13 +530,7 @@ QJsonObject BrowserSettings::generatePassword() return password; } -void BrowserSettings::updateBinaryPaths(const QString& customProxyLocation) -{ - bool isProxy = supportBrowserProxy(); - m_hostInstaller.updateBinaryPaths(isProxy, customProxyLocation); -} - -bool BrowserSettings::checkIfProxyExists(QString& path) +void BrowserSettings::updateBinaryPaths() { - return m_hostInstaller.checkIfProxyExists(supportBrowserProxy(), customProxyLocation(), path); + m_nativeMessageInstaller.updateBinaryPaths(); } |