2022-05-09 14:21:52 +02:00
|
|
|
<div class="tabbed-header">
|
2018-06-27 04:51:58 +02:00
|
|
|
<h1>{{ "twoStepLogin" | i18n }}</h1>
|
|
|
|
</div>
|
2018-07-18 23:10:26 +02:00
|
|
|
<p *ngIf="!organizationId">{{ "twoStepLoginDesc" | i18n }}</p>
|
|
|
|
<p *ngIf="organizationId">{{ "twoStepLoginOrganizationDesc" | i18n }}</p>
|
2022-05-09 14:21:52 +02:00
|
|
|
<bit-callout type="warning" *ngIf="!organizationId">
|
2018-06-27 04:51:58 +02:00
|
|
|
<p>{{ "twoStepLoginRecoveryWarning" | i18n }}</p>
|
2022-06-02 11:34:27 +02:00
|
|
|
<button bitButton buttonType="secondary" (click)="recoveryCode()">
|
2019-02-21 22:50:37 +01:00
|
|
|
{{ "viewRecoveryCode" | i18n }}
|
|
|
|
</button>
|
2022-05-09 14:21:52 +02:00
|
|
|
</bit-callout>
|
2018-07-18 23:10:26 +02:00
|
|
|
<h2 [ngClass]="{ 'mt-5': !organizationId }">
|
2018-06-27 04:51:58 +02:00
|
|
|
{{ "providers" | i18n }}
|
|
|
|
<small *ngIf="loading">
|
2019-10-11 16:35:24 +02:00
|
|
|
<i
|
2022-01-27 18:25:58 +01:00
|
|
|
class="bwi bwi-spinner bwi-spin bwi-fw text-muted"
|
2019-10-11 16:35:24 +02:00
|
|
|
title="{{ 'loading' | i18n }}"
|
|
|
|
aria-hidden="true"
|
|
|
|
></i>
|
|
|
|
<span class="sr-only">{{ "loading" | i18n }}</span>
|
2018-06-27 04:51:58 +02:00
|
|
|
</small>
|
|
|
|
</h2>
|
2022-05-09 14:21:52 +02:00
|
|
|
<bit-callout type="warning" *ngIf="showPolicyWarning">
|
2020-02-27 19:07:33 +01:00
|
|
|
{{ "twoStepLoginPolicyUserWarning" | i18n }}
|
2022-05-09 14:21:52 +02:00
|
|
|
</bit-callout>
|
2018-06-27 04:51:58 +02:00
|
|
|
<ul class="list-group list-group-2fa">
|
|
|
|
<li *ngFor="let p of providers" class="list-group-item d-flex align-items-center">
|
|
|
|
<div class="logo-2fa d-flex justify-content-center">
|
2021-10-08 00:47:32 +02:00
|
|
|
<img [class]="'mfaType' + p.type" [alt]="p.name + ' logo'" />
|
2018-06-27 04:51:58 +02:00
|
|
|
</div>
|
|
|
|
<div class="mx-4">
|
|
|
|
<h3 class="mb-0">
|
|
|
|
{{ p.name }}
|
2019-10-14 22:44:38 +02:00
|
|
|
<ng-container *ngIf="p.enabled">
|
2019-10-11 16:35:24 +02:00
|
|
|
<i
|
2022-01-27 18:25:58 +01:00
|
|
|
class="bwi bwi-check text-success bwi-fw"
|
2019-10-11 16:35:24 +02:00
|
|
|
title="{{ 'enabled' | i18n }}"
|
|
|
|
aria-hidden="true"
|
|
|
|
></i>
|
|
|
|
<span class="sr-only">{{ "enabled" | i18n }}</span>
|
|
|
|
</ng-container>
|
2022-03-29 21:55:47 +02:00
|
|
|
<app-premium-badge *ngIf="p.premium"></app-premium-badge>
|
2018-06-27 04:51:58 +02:00
|
|
|
</h3>
|
|
|
|
{{ p.description }}
|
|
|
|
</div>
|
|
|
|
<div class="ml-auto">
|
2019-02-21 22:50:37 +01:00
|
|
|
<button
|
2022-06-02 11:34:27 +02:00
|
|
|
bitButton
|
2022-05-09 14:21:52 +02:00
|
|
|
buttonType="secondary"
|
2019-02-21 22:50:37 +01:00
|
|
|
[disabled]="!canAccessPremium && p.premium"
|
|
|
|
(click)="manage(p.type)"
|
|
|
|
>
|
2018-06-27 04:51:58 +02:00
|
|
|
{{ "manage" | i18n }}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</ul>
|
2022-06-13 20:13:22 +02:00
|
|
|
<form *ngIf="!loading" #form (ngSubmit)="submit()" [appApiAction]="formPromise" ngNativeValidate>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-12">
|
|
|
|
<h2 class="mt-5 spaced-header">
|
|
|
|
{{ "deviceVerification" | i18n }}
|
|
|
|
</h2>
|
|
|
|
<div class="form-group">
|
|
|
|
<div class="form-check">
|
|
|
|
<input
|
|
|
|
class="form-check-input"
|
|
|
|
type="checkbox"
|
|
|
|
id="enableDeviceVerification"
|
|
|
|
name="enableDeviceVerification"
|
|
|
|
disabled="{{ !isDeviceVerificationSectionEnabled }}"
|
|
|
|
[(ngModel)]="enableDeviceVerification"
|
|
|
|
/>
|
|
|
|
<label class="form-check-label" for="enableDeviceVerification">
|
|
|
|
{{ "enableDeviceVerification" | i18n }}
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<small class="form-text text-muted">{{ "deviceVerificationDesc" | i18n }}</small>
|
|
|
|
</div>
|
|
|
|
<button
|
|
|
|
type="submit"
|
|
|
|
bitButton
|
|
|
|
buttonType="primary"
|
|
|
|
class="btn-submit"
|
|
|
|
[disabled]="form.loading"
|
|
|
|
*ngIf="isDeviceVerificationSectionEnabled"
|
|
|
|
>
|
|
|
|
<i
|
|
|
|
class="bwi bwi-spinner bwi-spin"
|
|
|
|
title="{{ 'loading' | i18n }}"
|
|
|
|
aria-hidden="true"
|
|
|
|
*ngIf="form.loading"
|
|
|
|
></i>
|
|
|
|
<span>{{ "save" | i18n }}</span>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
2018-06-27 15:20:09 +02:00
|
|
|
|
|
|
|
<ng-template #authenticatorTemplate></ng-template>
|
|
|
|
<ng-template #recoveryTemplate></ng-template>
|
|
|
|
<ng-template #duoTemplate></ng-template>
|
|
|
|
<ng-template #emailTemplate></ng-template>
|
|
|
|
<ng-template #yubikeyTemplate></ng-template>
|
2021-03-16 17:44:31 +01:00
|
|
|
<ng-template #webAuthnTemplate></ng-template>
|