mirror of
https://github.com/bitwarden/browser
synced 2025-12-13 14:53:33 +00:00
[PM-17113] Fix system authentication setup (#12907)
* Fix system authentication setup * Fix biometric status * Remove debug log * Fix tests
This commit is contained in:
@@ -362,14 +362,24 @@ export class SettingsComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.supportsBiometric =
|
this.supportsBiometric = this.shouldAllowBiometricSetup(
|
||||||
(await this.biometricsService.getBiometricsStatus()) === BiometricsStatus.Available;
|
await this.biometricsService.getBiometricsStatus(),
|
||||||
|
);
|
||||||
this.timerId = setInterval(async () => {
|
this.timerId = setInterval(async () => {
|
||||||
this.supportsBiometric =
|
this.supportsBiometric = this.shouldAllowBiometricSetup(
|
||||||
(await this.biometricsService.getBiometricsStatus()) === BiometricsStatus.Available;
|
await this.biometricsService.getBiometricsStatus(),
|
||||||
|
);
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private shouldAllowBiometricSetup(biometricStatus: BiometricsStatus): boolean {
|
||||||
|
return [
|
||||||
|
BiometricsStatus.Available,
|
||||||
|
BiometricsStatus.AutoSetupNeeded,
|
||||||
|
BiometricsStatus.ManualSetupNeeded,
|
||||||
|
].includes(biometricStatus);
|
||||||
|
}
|
||||||
|
|
||||||
async saveVaultTimeout(newValue: VaultTimeout) {
|
async saveVaultTimeout(newValue: VaultTimeout) {
|
||||||
if (newValue === VaultTimeoutStringType.Never) {
|
if (newValue === VaultTimeoutStringType.Never) {
|
||||||
const confirmed = await this.dialogService.openSimpleDialog({
|
const confirmed = await this.dialogService.openSimpleDialog({
|
||||||
|
|||||||
@@ -117,15 +117,15 @@ describe("biometrics tests", function () {
|
|||||||
const testCases = [
|
const testCases = [
|
||||||
// happy path
|
// happy path
|
||||||
[true, false, false, BiometricsStatus.Available],
|
[true, false, false, BiometricsStatus.Available],
|
||||||
[false, true, true, BiometricsStatus.AutoSetupNeeded],
|
[false, true, true, BiometricsStatus.HardwareUnavailable],
|
||||||
[false, true, false, BiometricsStatus.ManualSetupNeeded],
|
[true, true, true, BiometricsStatus.AutoSetupNeeded],
|
||||||
[false, false, false, BiometricsStatus.HardwareUnavailable],
|
[true, true, false, BiometricsStatus.ManualSetupNeeded],
|
||||||
|
|
||||||
// should not happen
|
// should not happen
|
||||||
[false, false, true, BiometricsStatus.HardwareUnavailable],
|
[false, false, true, BiometricsStatus.HardwareUnavailable],
|
||||||
[true, true, true, BiometricsStatus.Available],
|
|
||||||
[true, true, false, BiometricsStatus.Available],
|
|
||||||
[true, false, true, BiometricsStatus.Available],
|
[true, false, true, BiometricsStatus.Available],
|
||||||
|
[false, true, false, BiometricsStatus.HardwareUnavailable],
|
||||||
|
[false, false, false, BiometricsStatus.HardwareUnavailable],
|
||||||
];
|
];
|
||||||
|
|
||||||
for (const [supportsBiometric, needsSetup, canAutoSetup, expected] of testCases) {
|
for (const [supportsBiometric, needsSetup, canAutoSetup, expected] of testCases) {
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ export class MainBiometricsService extends DesktopBiometricsService {
|
|||||||
*/
|
*/
|
||||||
async getBiometricsStatus(): Promise<BiometricsStatus> {
|
async getBiometricsStatus(): Promise<BiometricsStatus> {
|
||||||
if (!(await this.osBiometricsService.osSupportsBiometric())) {
|
if (!(await this.osBiometricsService.osSupportsBiometric())) {
|
||||||
|
return BiometricsStatus.HardwareUnavailable;
|
||||||
|
} else {
|
||||||
if (await this.osBiometricsService.osBiometricsNeedsSetup()) {
|
if (await this.osBiometricsService.osBiometricsNeedsSetup()) {
|
||||||
if (await this.osBiometricsService.osBiometricsCanAutoSetup()) {
|
if (await this.osBiometricsService.osBiometricsCanAutoSetup()) {
|
||||||
return BiometricsStatus.AutoSetupNeeded;
|
return BiometricsStatus.AutoSetupNeeded;
|
||||||
@@ -67,8 +69,6 @@ export class MainBiometricsService extends DesktopBiometricsService {
|
|||||||
return BiometricsStatus.ManualSetupNeeded;
|
return BiometricsStatus.ManualSetupNeeded;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return BiometricsStatus.HardwareUnavailable;
|
|
||||||
}
|
}
|
||||||
return BiometricsStatus.Available;
|
return BiometricsStatus.Available;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user