From ca0520cea034504556430762fc2f04e10bc3d132 Mon Sep 17 00:00:00 2001 From: Alec Rippberger Date: Tue, 1 Oct 2024 13:02:39 -0500 Subject: [PATCH] Add isLoginWithPasskeySupported function to reduce client type checking in template. --- .../src/angular/login/default-login-component.service.ts | 7 +++++++ libs/auth/src/angular/login/login-component.service.ts | 5 +++++ libs/auth/src/angular/login/login.component.html | 4 ++-- libs/auth/src/angular/login/login.component.ts | 4 ++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/libs/auth/src/angular/login/default-login-component.service.ts b/libs/auth/src/angular/login/default-login-component.service.ts index 620d328d5df..b897e5cf19d 100644 --- a/libs/auth/src/angular/login/default-login-component.service.ts +++ b/libs/auth/src/angular/login/default-login-component.service.ts @@ -3,6 +3,7 @@ import { firstValueFrom } from "rxjs"; import { LoginComponentService, PasswordPolicies } from "@bitwarden/auth/angular"; import { SsoLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/sso-login.service.abstraction"; +import { ClientType } from "@bitwarden/common/enums"; import { CryptoFunctionService } from "@bitwarden/common/platform/abstractions/crypto-function.service"; import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; @@ -10,6 +11,8 @@ import { Utils } from "@bitwarden/common/platform/misc/utils"; import { PasswordGenerationServiceAbstraction } from "@bitwarden/generator-legacy"; export class DefaultLoginComponentService implements LoginComponentService { + protected clientType: ClientType; + constructor( protected cryptoFunctionService: CryptoFunctionService, protected environmentService: EnvironmentService, @@ -31,6 +34,10 @@ export class DefaultLoginComponentService implements LoginComponentService { return false; } + isLoginWithPasskeySupported(): boolean { + return this.clientType == ClientType.Web; + } + async launchSsoBrowserWindow( email: string, clientId: "browser" | "desktop", diff --git a/libs/auth/src/angular/login/login-component.service.ts b/libs/auth/src/angular/login/login-component.service.ts index 55ade0a789c..7b04dc53b65 100644 --- a/libs/auth/src/angular/login/login-component.service.ts +++ b/libs/auth/src/angular/login/login-component.service.ts @@ -36,6 +36,11 @@ export abstract class LoginComponentService { */ isLoginViaAuthRequestSupported: () => boolean; + /** + * Indicates whether login with passkey is supported on the given client + */ + isLoginWithPasskeySupported: () => boolean; + /** * Launches the SSO flow in a new browser window. * - Used by: Browser, Desktop diff --git a/libs/auth/src/angular/login/login.component.html b/libs/auth/src/angular/login/login.component.html index 23f4558390c..61798e3679a 100644 --- a/libs/auth/src/angular/login/login.component.html +++ b/libs/auth/src/angular/login/login.component.html @@ -39,8 +39,8 @@
{{ "or" | i18n }}
- - + + { await this.saveEmailSettings(); await this.router.navigateByUrl("/hint");