mirror of
https://github.com/bitwarden/browser
synced 2025-12-28 14:13:22 +00:00
[PM-27225] Fix nothing showing when biometrics unavailable (#17209)
* Fix nothing showing when biometrics unavailable * Cleanup * Switch to tooltip * Fix type error * Fix type check * Fix includes * Fix types * Fix tests * Add missing return * Add DesktopDisconnected to canUseBiometrics * Apply suggestions * Move comment * Cleanup * Fix typing for null value * Add tests * Fix QA bugs
This commit is contained in:
@@ -48,7 +48,11 @@ export class ForegroundBrowserBiometricsService extends BiometricsService {
|
||||
result: BiometricsStatus;
|
||||
error: string;
|
||||
}>(BiometricsCommands.GetBiometricsStatusForUser, { userId: id });
|
||||
return response.result;
|
||||
if (response != null) {
|
||||
return response.result;
|
||||
} else {
|
||||
return BiometricsStatus.DesktopDisconnected;
|
||||
}
|
||||
}
|
||||
|
||||
async getShouldAutopromptNow(): Promise<boolean> {
|
||||
|
||||
@@ -51,6 +51,7 @@ import {
|
||||
} from "@bitwarden/common/auth/abstractions/auth.service";
|
||||
import { MasterPasswordApiService } from "@bitwarden/common/auth/abstractions/master-password-api.service.abstraction";
|
||||
import { SsoLoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/sso-login.service.abstraction";
|
||||
import { TokenService } from "@bitwarden/common/auth/abstractions/token.service";
|
||||
import { AutofillSettingsServiceAbstraction } from "@bitwarden/common/autofill/services/autofill-settings.service";
|
||||
import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions";
|
||||
import { ClientType } from "@bitwarden/common/enums";
|
||||
@@ -167,12 +168,12 @@ const safeProviders: SafeProvider[] = [
|
||||
safeProvider({
|
||||
provide: BiometricsService,
|
||||
useClass: RendererBiometricsService,
|
||||
deps: [],
|
||||
deps: [TokenService],
|
||||
}),
|
||||
safeProvider({
|
||||
provide: DesktopBiometricsService,
|
||||
useClass: RendererBiometricsService,
|
||||
deps: [],
|
||||
deps: [TokenService],
|
||||
}),
|
||||
safeProvider(NativeMessagingService),
|
||||
safeProvider(BiometricMessageHandlerService),
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { Injectable } from "@angular/core";
|
||||
import { firstValueFrom } from "rxjs";
|
||||
|
||||
import { TokenService } from "@bitwarden/common/auth/abstractions/token.service";
|
||||
import { SymmetricCryptoKey } from "@bitwarden/common/platform/models/domain/symmetric-crypto-key";
|
||||
import { UserId } from "@bitwarden/common/types/guid";
|
||||
import { UserKey } from "@bitwarden/common/types/key";
|
||||
@@ -13,6 +15,10 @@ import { DesktopBiometricsService } from "./desktop.biometrics.service";
|
||||
*/
|
||||
@Injectable()
|
||||
export class RendererBiometricsService extends DesktopBiometricsService {
|
||||
constructor(private tokenService: TokenService) {
|
||||
super();
|
||||
}
|
||||
|
||||
async authenticateWithBiometrics(): Promise<boolean> {
|
||||
return await ipc.keyManagement.biometric.authenticateWithBiometrics();
|
||||
}
|
||||
@@ -31,6 +37,10 @@ export class RendererBiometricsService extends DesktopBiometricsService {
|
||||
}
|
||||
|
||||
async getBiometricsStatusForUser(id: UserId): Promise<BiometricsStatus> {
|
||||
if ((await firstValueFrom(this.tokenService.hasAccessToken$(id))) === false) {
|
||||
return BiometricsStatus.NotEnabledInConnectedDesktopApp;
|
||||
}
|
||||
|
||||
return await ipc.keyManagement.biometric.getBiometricsStatusForUser(id);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user