From d4b984f907ddaf55ce6aaf08407f325999e35e86 Mon Sep 17 00:00:00 2001 From: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com> Date: Thu, 29 Aug 2024 11:18:17 -0400 Subject: [PATCH] Auth/PM-11414 - Fix Web Client Lock Component (#10780) * PM-11414 - Fix web lock being broken due to missing web implementation for biometric service. * PM-11414 - Fix import --- apps/web/src/app/core/core.module.ts | 7 +++++ .../src/app/platform/web-biometric.service.ts | 27 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 apps/web/src/app/platform/web-biometric.service.ts diff --git a/apps/web/src/app/core/core.module.ts b/apps/web/src/app/core/core.module.ts index 3b7ba0a727..2c0a0471a1 100644 --- a/apps/web/src/app/core/core.module.ts +++ b/apps/web/src/app/core/core.module.ts @@ -39,6 +39,7 @@ import { I18nService as I18nServiceAbstraction } from "@bitwarden/common/platfor import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { AbstractStorageService } from "@bitwarden/common/platform/abstractions/storage.service"; +import { BiometricsService } from "@bitwarden/common/platform/biometrics/biometric.service"; import { ThemeType } from "@bitwarden/common/platform/enums"; import { MemoryStorageService } from "@bitwarden/common/platform/services/memory-storage.service"; // eslint-disable-next-line import/no-restricted-paths -- Implementation for memory storage @@ -61,6 +62,7 @@ import { WebSetPasswordJitService, WebRegistrationFinishService } from "../auth" import { AcceptOrganizationInviteService } from "../auth/organization-invite/accept-organization.service"; import { HtmlStorageService } from "../core/html-storage.service"; import { I18nService } from "../core/i18n.service"; +import { WebBiometricsService } from "../platform/web-biometric.service"; import { WebEnvironmentService } from "../platform/web-environment.service"; import { WebMigrationRunner } from "../platform/web-migration-runner"; import { WebStorageServiceProvider } from "../platform/web-storage-service.provider"; @@ -163,6 +165,11 @@ const safeProviders: SafeProvider[] = [ useClass: WebEnvironmentService, deps: [WINDOW, StateProvider, AccountService], }), + safeProvider({ + provide: BiometricsService, + useClass: WebBiometricsService, + deps: [], + }), safeProvider({ provide: ThemeStateService, useFactory: (globalStateProvider: GlobalStateProvider) => diff --git a/apps/web/src/app/platform/web-biometric.service.ts b/apps/web/src/app/platform/web-biometric.service.ts new file mode 100644 index 0000000000..3fb817ec5b --- /dev/null +++ b/apps/web/src/app/platform/web-biometric.service.ts @@ -0,0 +1,27 @@ +import { BiometricsService } from "@bitwarden/common/platform/biometrics/biometric.service"; + +export class WebBiometricsService extends BiometricsService { + async supportsBiometric(): Promise { + return false; + } + + async isBiometricUnlockAvailable(): Promise { + return false; + } + + async authenticateBiometric(): Promise { + throw new Error("Method not implemented."); + } + + async biometricsNeedsSetup(): Promise { + throw new Error("Method not implemented."); + } + + async biometricsSupportsAutoSetup(): Promise { + throw new Error("Method not implemented."); + } + + async biometricsSetup(): Promise { + throw new Error("Method not implemented."); + } +}