mirror of
https://github.com/bitwarden/browser
synced 2025-12-17 08:43:33 +00:00
[EC-598] feat: show unsupported user verification error
This commit is contained in:
@@ -1,47 +1,49 @@
|
|||||||
|
<!-- TODO: Rewrite and refactor this component when implementing the new design -->
|
||||||
<ng-container *ngIf="data$ | async as data">
|
<ng-container *ngIf="data$ | async as data">
|
||||||
<div class="auth-wrapper">
|
<div class="auth-wrapper">
|
||||||
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!loading" aria-hidden="true"></i>
|
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!loading" aria-hidden="true"></i>
|
||||||
<ng-container
|
<ng-container *ngIf="data.showUnsupportedVerification">
|
||||||
*ngIf="
|
Password confirmation required by initiating site. Your account does not support password
|
||||||
data.message.type == 'PickCredentialRequest' ||
|
confirmation.
|
||||||
data.message.type == 'ConfirmNewNonDiscoverableCredentialRequest'
|
|
||||||
"
|
|
||||||
>
|
|
||||||
A site is asking for authentication, please choose one of the following credentials to use:
|
|
||||||
<div class="box list">
|
|
||||||
<div class="box-content">
|
|
||||||
<app-cipher-row
|
|
||||||
*ngFor="let cipher of ciphers"
|
|
||||||
[cipher]="cipher"
|
|
||||||
(onSelected)="pick(cipher)"
|
|
||||||
></app-cipher-row>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="data.message.type == 'ConfirmNewCredentialRequest'">
|
<ng-container *ngIf="!data.showUnsupportedVerification">
|
||||||
A site wants to create the following passkey in your vault
|
<ng-container
|
||||||
<div class="box list">
|
*ngIf="
|
||||||
<div class="box-content">
|
data.message.type == 'PickCredentialRequest' ||
|
||||||
<app-cipher-row [cipher]="ciphers[0]"></app-cipher-row>
|
data.message.type == 'ConfirmNewNonDiscoverableCredentialRequest'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
A site is asking for authentication, please choose one of the following credentials to use:
|
||||||
|
<div class="box list">
|
||||||
|
<div class="box-content">
|
||||||
|
<app-cipher-row
|
||||||
|
*ngFor="let cipher of ciphers"
|
||||||
|
[cipher]="cipher"
|
||||||
|
(onSelected)="pick(cipher)"
|
||||||
|
></app-cipher-row>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</ng-container>
|
||||||
<button type="button" class="btn btn-outline-secondary" (click)="confirm()">Create</button>
|
<ng-container *ngIf="data.message.type == 'ConfirmNewCredentialRequest'">
|
||||||
</ng-container>
|
A site wants to create the following passkey in your vault
|
||||||
<ng-container *ngIf="data.message.type == 'InformExcludedCredentialRequest'">
|
<div class="box list">
|
||||||
A passkey already exists in Bitwarden for this account
|
<div class="box-content">
|
||||||
<div class="box list">
|
<app-cipher-row [cipher]="ciphers[0]"></app-cipher-row>
|
||||||
<div class="box-content">
|
</div>
|
||||||
<app-cipher-row *ngFor="let cipher of ciphers" [cipher]="cipher"></app-cipher-row>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<button type="button" class="btn btn-outline-secondary" (click)="confirm()">Create</button>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="data.message.type == 'InformCredentialNotFoundRequest'">
|
<ng-container *ngIf="data.message.type == 'InformExcludedCredentialRequest'">
|
||||||
You do not have a matching login for this site.
|
A passkey already exists in Bitwarden for this account
|
||||||
<div class="box list">
|
<div class="box list">
|
||||||
<div class="box-content">
|
<div class="box-content">
|
||||||
<app-cipher-row *ngFor="let cipher of ciphers" [cipher]="cipher"></app-cipher-row>
|
<app-cipher-row *ngFor="let cipher of ciphers" [cipher]="cipher"></app-cipher-row>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</ng-container>
|
||||||
|
<ng-container *ngIf="data.message.type == 'InformCredentialNotFoundRequest'">
|
||||||
|
You do not have a matching login for this site.
|
||||||
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<button type="button" class="btn btn-outline-secondary" (click)="abort(true)">
|
<button type="button" class="btn btn-outline-secondary" (click)="abort(true)">
|
||||||
Use browser built-in
|
Use browser built-in
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import {
|
|||||||
|
|
||||||
interface ViewData {
|
interface ViewData {
|
||||||
message: BrowserFido2Message;
|
message: BrowserFido2Message;
|
||||||
|
showUnsupportedVerification: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@@ -108,6 +109,12 @@ export class Fido2Component implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
message,
|
message,
|
||||||
|
showUnsupportedVerification:
|
||||||
|
(message.type === "ConfirmNewCredentialRequest" ||
|
||||||
|
message.type === "ConfirmNewNonDiscoverableCredentialRequest" ||
|
||||||
|
message.type === "PickCredentialRequest") &&
|
||||||
|
message.userVerification &&
|
||||||
|
!(await this.passwordRepromptService.enabled()),
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
takeUntil(this.destroy$)
|
takeUntil(this.destroy$)
|
||||||
|
|||||||
Reference in New Issue
Block a user