diff --git a/lib/vscode/src/vs/server/browser/client.ts b/lib/vscode/src/vs/server/browser/client.ts index 26b709fa..47a2c72d 100644 --- a/lib/vscode/src/vs/server/browser/client.ts +++ b/lib/vscode/src/vs/server/browser/client.ts @@ -3,6 +3,7 @@ import { URI } from 'vs/base/common/uri'; import { Options } from 'vs/ipc'; import { localize } from 'vs/nls'; import { Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; +import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { ILogService } from 'vs/platform/log/common/log'; @@ -173,6 +174,10 @@ export const initialize = async (services: ServiceCollection): Promise => if (theme) { localStorage.setItem('colorThemeData', theme); } + + // Use to show or hide logout commands and menu options. + const contextKeyService = (services.get(IContextKeyService) as IContextKeyService); + contextKeyService.createKey('code-server.authed', options.authed); }; export interface Query { diff --git a/src/node/routes/vscode.ts b/src/node/routes/vscode.ts index aee4cacd..0d9c6309 100644 --- a/src/node/routes/vscode.ts +++ b/src/node/routes/vscode.ts @@ -3,6 +3,7 @@ import { Request, Router } from "express" import { promises as fs } from "fs" import * as path from "path" import qs from "qs" +import * as ipc from "../../../typings/ipc" import { Emitter } from "../../common/emitter" import { HttpCode, HttpError } from "../../common/http" import { getFirstString } from "../../common/util" @@ -39,12 +40,13 @@ router.get("/", async (req, res) => { options.productConfiguration.codeServerVersion = version res.send( - replaceTemplates( + replaceTemplates( req, // Uncomment prod blocks if not in development. TODO: Would this be // better as a build step? Or maintain two HTML files again? commit !== "development" ? content.replace(//g, "") : content, { + authed: req.args.auth !== "none", disableTelemetry: !!req.args["disable-telemetry"], disableUpdateCheck: !!req.args["disable-update-check"], }, diff --git a/typings/ipc.d.ts b/typings/ipc.d.ts index f31e1d45..c54004f2 100644 --- a/typings/ipc.d.ts +++ b/typings/ipc.d.ts @@ -6,6 +6,7 @@ * The second is a symlink to the first. */ export interface Options { + authed: boolean base: string disableTelemetry: boolean disableUpdateCheck: boolean