mirror of
https://github.com/bitwarden/browser.git
synced 2025-02-14 01:01:31 +01:00
PM-8113 - TwoFactorAuth - Save off 2FA providers map so we can only show the select another 2FA method if the user actually has more than 1 configured 2FA method.
This commit is contained in:
parent
adf448ce76
commit
fa8f9df07e
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<app-two-factor-auth-duo
|
<app-two-factor-auth-duo
|
||||||
(tokenEmitter)="submit($event)"
|
(tokenEmitter)="submit($event)"
|
||||||
[providerData]="providerData"
|
[providerData]="selectedProviderData"
|
||||||
*ngIf="
|
*ngIf="
|
||||||
selectedProviderType === providerType.OrganizationDuo ||
|
selectedProviderType === providerType.OrganizationDuo ||
|
||||||
selectedProviderType === providerType.Duo
|
selectedProviderType === providerType.Duo
|
||||||
@ -76,6 +76,7 @@
|
|||||||
buttonType="secondary"
|
buttonType="secondary"
|
||||||
bitButton
|
bitButton
|
||||||
bitFormButton
|
bitFormButton
|
||||||
|
*ngIf="twoFactorProviders?.size > 1"
|
||||||
(click)="selectOtherTwofactorMethod()"
|
(click)="selectOtherTwofactorMethod()"
|
||||||
>
|
>
|
||||||
<span> {{ "selectAnotherMethod" | i18n }} </span>
|
<span> {{ "selectAnotherMethod" | i18n }} </span>
|
||||||
|
@ -24,7 +24,6 @@ import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-p
|
|||||||
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
|
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
|
||||||
import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason";
|
import { ForceSetPasswordReason } from "@bitwarden/common/auth/models/domain/force-set-password-reason";
|
||||||
import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request";
|
import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request";
|
||||||
import { TwoFactorProviders } from "@bitwarden/common/auth/services/two-factor.service";
|
|
||||||
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
|
import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
|
||||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||||
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
||||||
@ -90,11 +89,12 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy {
|
|||||||
orgSsoIdentifier: string | undefined = undefined;
|
orgSsoIdentifier: string | undefined = undefined;
|
||||||
inSsoFlow = false;
|
inSsoFlow = false;
|
||||||
|
|
||||||
providers = TwoFactorProviders;
|
|
||||||
providerType = TwoFactorProviderType;
|
providerType = TwoFactorProviderType;
|
||||||
selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator;
|
selectedProviderType: TwoFactorProviderType = TwoFactorProviderType.Authenticator;
|
||||||
|
|
||||||
// TODO: PM-17176 - build more specific type for 2FA metadata
|
// TODO: PM-17176 - build more specific type for 2FA metadata
|
||||||
providerData: { [key: string]: string } | undefined;
|
twoFactorProviders: Map<TwoFactorProviderType, { [key: string]: string }> | null = null;
|
||||||
|
selectedProviderData: { [key: string]: string } | undefined;
|
||||||
|
|
||||||
@ViewChild("duoComponent") duoComponent!: TwoFactorAuthDuoComponent;
|
@ViewChild("duoComponent") duoComponent!: TwoFactorAuthDuoComponent;
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy {
|
|||||||
this.listenForAuthnSessionTimeout();
|
this.listenForAuthnSessionTimeout();
|
||||||
|
|
||||||
await this.setSelected2faProviderType();
|
await this.setSelected2faProviderType();
|
||||||
await this.set2faProviderData();
|
await this.set2faProvidersAndData();
|
||||||
await this.setAnonLayoutDataByTwoFactorProviderType();
|
await this.setAnonLayoutDataByTwoFactorProviderType();
|
||||||
|
|
||||||
await this.twoFactorAuthComponentService.extendPopupWidthIfRequired?.(
|
await this.twoFactorAuthComponentService.extendPopupWidthIfRequired?.(
|
||||||
@ -182,11 +182,10 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy {
|
|||||||
this.selectedProviderType = await this.twoFactorService.getDefaultProvider(webAuthnSupported);
|
this.selectedProviderType = await this.twoFactorService.getDefaultProvider(webAuthnSupported);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async set2faProviderData() {
|
private async set2faProvidersAndData() {
|
||||||
const providerData = await this.twoFactorService.getProviders().then((providers) => {
|
this.twoFactorProviders = await this.twoFactorService.getProviders();
|
||||||
return providers?.get(this.selectedProviderType);
|
const providerData = this.twoFactorProviders?.get(this.selectedProviderType);
|
||||||
});
|
this.selectedProviderData = providerData;
|
||||||
this.providerData = providerData;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private listenForAuthnSessionTimeout() {
|
private listenForAuthnSessionTimeout() {
|
||||||
@ -278,7 +277,7 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy {
|
|||||||
const providerData = await this.twoFactorService.getProviders().then((providers) => {
|
const providerData = await this.twoFactorService.getProviders().then((providers) => {
|
||||||
return providers?.get(response.type);
|
return providers?.get(response.type);
|
||||||
});
|
});
|
||||||
this.providerData = providerData;
|
this.selectedProviderData = providerData;
|
||||||
this.selectedProviderType = response.type;
|
this.selectedProviderType = response.type;
|
||||||
await this.setAnonLayoutDataByTwoFactorProviderType();
|
await this.setAnonLayoutDataByTwoFactorProviderType();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user