1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 16:53:34 +00:00

Automatic biometrics prompt (#2065)

Co-authored-by: Michael Cho <mcho@tutanota.com>
This commit is contained in:
Dane Powell
2021-09-17 01:22:46 -07:00
committed by GitHub
parent bb99af6e24
commit 7d797f73fe
5 changed files with 29 additions and 2 deletions

View File

@@ -1,6 +1,8 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { ConstantsService } from 'jslib-common/services/constants.service';
import { ApiService } from 'jslib-common/abstractions/api.service';
import { CryptoService } from 'jslib-common/abstractions/crypto.service';
import { EnvironmentService } from 'jslib-common/abstractions/environment.service';
@@ -20,6 +22,8 @@ import Swal from 'sweetalert2';
templateUrl: 'lock.component.html',
})
export class LockComponent extends BaseLockComponent {
private isInitialLockScreen: boolean;
constructor(router: Router, i18nService: I18nService,
platformUtilsService: PlatformUtilsService, messagingService: MessagingService,
userService: UserService, cryptoService: CryptoService,
@@ -29,12 +33,21 @@ export class LockComponent extends BaseLockComponent {
super(router, i18nService, platformUtilsService, messagingService, userService, cryptoService,
storageService, vaultTimeoutService, environmentService, stateService, apiService);
this.successRoute = '/tabs/current';
this.isInitialLockScreen = (window as any).previousPopupUrl == null;
}
async ngOnInit() {
await super.ngOnInit();
window.setTimeout(() => {
const disableAutoBiometricsPrompt = await this.storageService.get<boolean>(
ConstantsService.disableAutoBiometricsPromptKey) ?? true;
window.setTimeout(async () => {
document.getElementById(this.pinLock ? 'pin' : 'masterPassword').focus();
if (this.biometricLock && !disableAutoBiometricsPrompt && this.isInitialLockScreen) {
if (await this.vaultTimeoutService.isLocked()) {
await this.unlockBiometric();
}
}
}, 100);
}