Skip to content

Commit 3587ab9

Browse files
authored
Merge pull request dotnet#4760 from JoeRobich/authorization
Show decompilation authorization once per install.
2 parents 0d95e19 + 94ab6a0 commit 3587ab9

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

src/features/commands.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import OptionProvider from '../observers/OptionProvider';
2121
import reportIssue from './reportIssue';
2222
import { IMonoResolver } from '../constants/IMonoResolver';
2323
import { getDotnetInfo } from '../utils/getDotnetInfo';
24-
import { getDecompilationAuthorization } from '../omnisharp/decompilationPrompt';
24+
import { getDecompilationAuthorization, resetDecompilationAuthorization } from '../omnisharp/decompilationPrompt';
2525

2626
export default function registerCommands(context: vscode.ExtensionContext, server: OmniSharpServer, platformInfo: PlatformInformation, eventStream: EventStream, optionProvider: OptionProvider, monoResolver: IMonoResolver, packageJSON: any, extensionPath: string): CompositeDisposable {
2727
let disposable = new CompositeDisposable();
@@ -62,13 +62,13 @@ export default function registerCommands(context: vscode.ExtensionContext, serve
6262

6363
async function showDecompilationTerms(context: vscode.ExtensionContext, server: OmniSharpServer, optionProvider: OptionProvider) {
6464
// Reset the decompilation authorization so the user will be prompted on restart.
65-
context.workspaceState.update("decompilationAuthorized", undefined);
65+
resetDecompilationAuthorization(context);
6666

6767
await restartOmniSharp(context, server, optionProvider);
6868
}
6969

7070
async function restartOmniSharp(context: vscode.ExtensionContext, server: OmniSharpServer, optionProvider: OptionProvider) {
71-
// Update decompilation authorization for this workspace.
71+
// Update decompilation authorization.
7272
server.decompilationAuthorized = await getDecompilationAuthorization(context, optionProvider);
7373

7474
if (server.isRunning()) {

src/omnisharp/decompilationPrompt.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,31 @@
66
import * as vscode from "vscode";
77
import OptionProvider from "../observers/OptionProvider";
88

9+
const DecompilationAuthorizedOption = "csharp.decompilationAuthorized";
10+
11+
export async function resetDecompilationAuthorization(context: vscode.ExtensionContext) {
12+
context.globalState.update(DecompilationAuthorizedOption, undefined);
13+
}
14+
915
export async function getDecompilationAuthorization(context: vscode.ExtensionContext, optionProvider: OptionProvider) {
10-
// If decompilation is disabled the return false
16+
// If decompilation is disabled, then return false
1117
const options = optionProvider.GetLatestOptions();
1218
if (options.enableDecompilationSupport === false) {
1319
return false;
1420
}
1521

16-
// If the terms have been acknowledged for this workspace then return.
17-
let decompilationAutorized = context.workspaceState.get<boolean | undefined>("decompilationAuthorized");
18-
if (decompilationAutorized !== undefined) {
19-
return decompilationAutorized;
22+
// If the terms have been acknowledged, then return whether it was authorized.
23+
let decompilationAuthorized = context.globalState.get<boolean | undefined>(DecompilationAuthorizedOption);
24+
if (decompilationAuthorized !== undefined) {
25+
return decompilationAuthorized;
2026
}
2127

2228
const result = await promptToAcceptDecompilationTerms();
23-
decompilationAutorized = result === PromptResult.Yes;
29+
decompilationAuthorized = result === PromptResult.Yes;
2430

25-
await context.workspaceState.update("decompilationAuthorized", decompilationAutorized);
31+
await context.globalState.update(DecompilationAuthorizedOption, decompilationAuthorized);
2632

27-
return decompilationAutorized;
33+
return decompilationAuthorized;
2834
}
2935

3036
enum PromptResult {

0 commit comments

Comments
 (0)