- introduce trusted api

- disable settings sync in untrusted workspace
This commit is contained in:
Sandeep Somavarapu
2021-01-22 14:27:05 +01:00
parent 78446fc795
commit 97fde37887
3 changed files with 23 additions and 0 deletions

View File

@@ -11,7 +11,14 @@ export class WebUserDataAutoSyncEnablementService extends UserDataAutoSyncEnable
private get workbenchEnvironmentService(): IWorkbenchEnvironmentService { return <IWorkbenchEnvironmentService>this.environmentService; }
private enabled: boolean | undefined = undefined;
canToggleEnablement(): boolean {
return this.isTrusted() && super.canToggleEnablement();
}
isEnabled(): boolean {
if (!this.isTrusted()) {
return false;
}
if (this.enabled === undefined) {
this.enabled = this.workbenchEnvironmentService.options?.settingsSyncOptions?.enabled;
}
@@ -22,6 +29,9 @@ export class WebUserDataAutoSyncEnablementService extends UserDataAutoSyncEnable
}
setEnablement(enabled: boolean) {
if (!this.canToggleEnablement()) {
throw new Error('Cannot toggle enablement');
}
if (this.enabled !== enabled) {
this.enabled = enabled;
super.setEnablement(enabled);
@@ -31,4 +41,8 @@ export class WebUserDataAutoSyncEnablementService extends UserDataAutoSyncEnable
}
}
private isTrusted(): boolean {
return !!this.workbenchEnvironmentService.options?.workspaceProvider?.trusted;
}
}