mirror of
https://github.com/finos/SymphonyElectron.git
synced 2025-02-25 18:55:29 -06:00
SDA-4507 - Add validation for copying old global config file (#2115)
This commit is contained in:
parent
48a7fa921f
commit
3dde3d0678
@ -50,6 +50,7 @@ describe('Plist Handler', () => {
|
|||||||
userDataPath: undefined,
|
userDataPath: undefined,
|
||||||
whitelistUrl: undefined,
|
whitelistUrl: undefined,
|
||||||
chromeFlags: undefined,
|
chromeFlags: undefined,
|
||||||
|
latestAutoUpdateChannelEnabled: undefined,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -723,10 +723,10 @@ class Config {
|
|||||||
/**
|
/**
|
||||||
* Overwrites the global config file with the backed up config file
|
* Overwrites the global config file with the backed up config file
|
||||||
*/
|
*/
|
||||||
public copyGlobalConfig(settings: IConfig) {
|
public copyGlobalConfig(settings: IConfig, appGlobalConfig: IConfig) {
|
||||||
try {
|
try {
|
||||||
if (settings) {
|
if (settings) {
|
||||||
setPlistFromPreviousSettings(settings);
|
setPlistFromPreviousSettings(settings, appGlobalConfig);
|
||||||
fs.unlinkSync(this.tempGlobalConfigFilePath);
|
fs.unlinkSync(this.tempGlobalConfigFilePath);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -812,7 +812,17 @@ class Config {
|
|||||||
this.tempGlobalConfigFilePath,
|
this.tempGlobalConfigFilePath,
|
||||||
this.globalConfig,
|
this.globalConfig,
|
||||||
);
|
);
|
||||||
this.copyGlobalConfig(this.globalConfig as IConfig);
|
|
||||||
|
let appGlobalConfigData = {} as IConfig;
|
||||||
|
if (fs.existsSync(this.globalConfigPath)) {
|
||||||
|
appGlobalConfigData = this.parseConfigData(
|
||||||
|
fs.readFileSync(this.globalConfigPath, 'utf8'),
|
||||||
|
) as IConfig;
|
||||||
|
}
|
||||||
|
this.copyGlobalConfig(
|
||||||
|
this.globalConfig as IConfig,
|
||||||
|
appGlobalConfigData,
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.installVariant || this.installVariant === '') {
|
if (!this.installVariant || this.installVariant === '') {
|
||||||
|
@ -34,6 +34,7 @@ const GENERAL_SETTINGS = {
|
|||||||
userDataPath: 'string',
|
userDataPath: 'string',
|
||||||
chromeFlags: 'string',
|
chromeFlags: 'string',
|
||||||
betaAutoUpdateChannelEnabled: 'boolean',
|
betaAutoUpdateChannelEnabled: 'boolean',
|
||||||
|
latestAutoUpdateChannelEnabled: 'boolean',
|
||||||
};
|
};
|
||||||
|
|
||||||
const NOTIFICATION_SETTINGS = {
|
const NOTIFICATION_SETTINGS = {
|
||||||
@ -97,30 +98,49 @@ export const getAllUserDefaults = (): IConfig => {
|
|||||||
return settings;
|
return settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const setPlistFromPreviousSettings = (settings: IConfig) => {
|
export const setPlistFromPreviousSettings = (
|
||||||
|
settings: any,
|
||||||
|
appGlobalConfig: IConfig,
|
||||||
|
) => {
|
||||||
Object.keys(GENERAL_SETTINGS).map((key) => {
|
Object.keys(GENERAL_SETTINGS).map((key) => {
|
||||||
systemPreferences.setUserDefault(key, GENERAL_SETTINGS[key], settings[key]);
|
let value = settings?.[key];
|
||||||
|
if (value === undefined) {
|
||||||
|
if (appGlobalConfig?.[key] === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
value = appGlobalConfig[key];
|
||||||
|
}
|
||||||
|
systemPreferences.setUserDefault(key, GENERAL_SETTINGS[key], value);
|
||||||
});
|
});
|
||||||
Object.keys(NOTIFICATION_SETTINGS).map((key) => {
|
Object.keys(NOTIFICATION_SETTINGS).map((key) => {
|
||||||
systemPreferences.setUserDefault(
|
let value = settings?.notificationSettings?.[key];
|
||||||
key,
|
if (value === undefined) {
|
||||||
NOTIFICATION_SETTINGS[key],
|
if (appGlobalConfig?.notificationSettings?.[key] === undefined) {
|
||||||
settings.notificationSettings[key],
|
return;
|
||||||
);
|
}
|
||||||
|
value = appGlobalConfig.notificationSettings[key];
|
||||||
|
}
|
||||||
|
systemPreferences.setUserDefault(key, NOTIFICATION_SETTINGS[key], value);
|
||||||
});
|
});
|
||||||
Object.keys(CUSTOM_FLAGS).map((key) => {
|
Object.keys(CUSTOM_FLAGS).map((key) => {
|
||||||
systemPreferences.setUserDefault(
|
let value = settings?.customFlags?.[key];
|
||||||
key,
|
if (value === undefined) {
|
||||||
CUSTOM_FLAGS[key],
|
if (appGlobalConfig?.customFlags?.[key] === undefined) {
|
||||||
settings.customFlags[key],
|
return;
|
||||||
);
|
}
|
||||||
|
value = appGlobalConfig.customFlags[key];
|
||||||
|
}
|
||||||
|
systemPreferences.setUserDefault(key, CUSTOM_FLAGS[key], value);
|
||||||
});
|
});
|
||||||
Object.keys(PERMISSIONS).map((key) => {
|
Object.keys(PERMISSIONS).map((key) => {
|
||||||
systemPreferences.setUserDefault(
|
let value = settings?.permissions?.[key];
|
||||||
key,
|
if (value === undefined) {
|
||||||
PERMISSIONS[key],
|
if (appGlobalConfig?.permissions?.[key] === undefined) {
|
||||||
settings.permissions[key],
|
return;
|
||||||
);
|
}
|
||||||
|
value = appGlobalConfig.permissions[key];
|
||||||
|
}
|
||||||
|
systemPreferences.setUserDefault(key, PERMISSIONS[key], value);
|
||||||
});
|
});
|
||||||
systemPreferences.setUserDefault('installVariant', 'string', getGuid());
|
systemPreferences.setUserDefault('installVariant', 'string', getGuid());
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user