1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-06-15 23:00:36 +02:00

Desktop: Resolves #2773: Add support for system keychain to save sensitive settings (#3207)

This commit is contained in:
Laurent Cozic
2020-06-03 17:07:50 +01:00
committed by GitHub
parent 5082181c49
commit 26ce102113
28 changed files with 661 additions and 40 deletions

View File

@ -15,7 +15,6 @@ const { reg } = require('lib/registry.js');
const { time } = require('lib/time-utils.js');
const BaseSyncTarget = require('lib/BaseSyncTarget.js');
const { shim } = require('lib/shim.js');
const { uuid } = require('lib/uuid.js');
const { _, setLocale } = require('lib/locale.js');
const reduxSharedMiddleware = require('lib/components/shared/reduxSharedMiddleware');
const os = require('os');
@ -38,6 +37,8 @@ const ResourceService = require('lib/services/RevisionService');
const DecryptionWorker = require('lib/services/DecryptionWorker');
const BaseService = require('lib/services/BaseService');
const SearchEngine = require('lib/services/SearchEngine');
const { loadKeychainServiceAndSettings } = require('lib/services/SettingUtils');
const KeychainServiceDriver = require('lib/services/keychain/KeychainServiceDriver.node').default;
const KvStore = require('lib/services/KvStore');
const MigrationService = require('lib/services/MigrationService');
const { toSystemSlashes } = require('lib/path-utils.js');
@ -642,15 +643,21 @@ class BaseApplication {
initArgs = Object.assign(initArgs, extraFlags);
this.logger_.addTarget('file', { path: `${profileDir}/log.txt` });
if (Setting.value('env') === 'dev' && Setting.value('appType') === 'desktop') this.logger_.addTarget('console', { level: Logger.LEVEL_DEBUG });
this.logger_.setLevel(initArgs.logLevel);
reg.setLogger(this.logger_);
reg.dispatch = () => {};
BaseService.logger_ = this.logger_;
this.dbLogger_.addTarget('file', { path: `${profileDir}/log-database.txt` });
this.dbLogger_.setLevel(initArgs.logLevel);
if (Setting.value('env') === 'dev' && Setting.value('appType') === 'desktop') {
this.logger_.addTarget('console', { level: Logger.LEVEL_DEBUG });
this.dbLogger_.addTarget('console', { level: Logger.LEVEL_WARN });
}
if (Setting.value('env') === 'dev') {
this.dbLogger_.setLevel(Logger.LEVEL_INFO);
}
@ -667,9 +674,9 @@ class BaseApplication {
reg.setDb(this.database_);
BaseModel.setDb(this.database_);
await Setting.load();
await loadKeychainServiceAndSettings(KeychainServiceDriver);
if (!Setting.value('clientId')) Setting.setValue('clientId', uuid.create());
this.logger_.info(`Client ID: ${Setting.value('clientId')}`);
if (Setting.value('firstStart')) {
const locale = shim.detectAndSetLocale(Setting);
@ -712,7 +719,6 @@ class BaseApplication {
KvStore.instance().setDb(reg.db());
BaseService.logger_ = this.logger_;
EncryptionService.instance().setLogger(this.logger_);
BaseItem.encryptionService_ = EncryptionService.instance();
DecryptionWorker.instance().setLogger(this.logger_);