getSetting: add an optional scope parameter

settings are stored in 3 places:
- login (.gpg file)
- store (.browserpass-settings.json)
- extension-level config (browser UI)

but we don't want each setting to be settable everywhere, so scope
allows one to control which of these 3 places to search for a given
setting.
This commit is contained in:
2022-11-06 00:38:17 -07:00
parent f70e0cc838
commit 284d9b2efc

View File

@@ -32,10 +32,11 @@ const SettingScope = {
* @param string key Setting key * @param string key Setting key
* @param object login Login object * @param object login Login object
* @param object settings Settings object * @param object settings Settings object
* @param string scope SettingScope value to specify where to search for the setting (optional)
* @return object Setting value * @return object Setting value
*/ */
function getSetting(key, login, settings) { function getSetting(key, login, settings, scope = SettingScope.Login) {
if (typeof login.settings[key] !== "undefined") { if (scope === SettingScope.Login && typeof login.settings[key] !== "undefined") {
return login.settings[key]; return login.settings[key];
} }
if (typeof settings.stores[login.store.id].settings[key] !== "undefined") { if (typeof settings.stores[login.store.id].settings[key] !== "undefined") {