2018-06-28 15:40:11 +02:00
|
|
|
import { Component } from "@angular/core";
|
|
|
|
|
2021-06-07 20:13:58 +02:00
|
|
|
import { I18nService } from "jslib-common/abstractions/i18n.service";
|
2018-06-28 15:40:11 +02:00
|
|
|
|
2021-06-07 20:13:58 +02:00
|
|
|
import { TwoFactorRecoverResponse } from "jslib-common/models/response/twoFactorRescoverResponse";
|
2018-06-28 15:40:11 +02:00
|
|
|
|
2021-06-07 20:13:58 +02:00
|
|
|
import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType";
|
2018-06-28 15:40:11 +02:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: "app-two-factor-recovery",
|
|
|
|
templateUrl: "two-factor-recovery.component.html",
|
|
|
|
})
|
|
|
|
export class TwoFactorRecoveryComponent {
|
2018-07-18 23:10:26 +02:00
|
|
|
type = -1;
|
2018-06-28 15:40:11 +02:00
|
|
|
code: string;
|
|
|
|
authed: boolean;
|
|
|
|
twoFactorProviderType = TwoFactorProviderType;
|
2021-12-17 15:57:11 +01:00
|
|
|
|
2018-06-28 15:40:11 +02:00
|
|
|
constructor(private i18nService: I18nService) {}
|
2021-12-17 15:57:11 +01:00
|
|
|
|
2018-06-28 15:40:11 +02:00
|
|
|
auth(authResponse: any) {
|
|
|
|
this.authed = true;
|
|
|
|
this.processResponse(authResponse.response);
|
|
|
|
}
|
2021-12-17 15:57:11 +01:00
|
|
|
|
2018-06-28 15:40:11 +02:00
|
|
|
print() {
|
|
|
|
const w = window.open();
|
|
|
|
w.document.write(
|
|
|
|
'<div style="font-size: 18px; text-align: center;">' +
|
|
|
|
"<p>" +
|
|
|
|
this.i18nService.t("twoFactorRecoveryYourCode") +
|
|
|
|
":</p>" +
|
|
|
|
"<code style=\"font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;\">" +
|
|
|
|
this.code +
|
|
|
|
"</code></div>" +
|
|
|
|
'<p style="text-align: center;">' +
|
|
|
|
new Date() +
|
|
|
|
"</p>"
|
|
|
|
);
|
2021-01-12 18:33:56 +01:00
|
|
|
w.onafterprint = () => w.close();
|
2018-06-28 15:40:11 +02:00
|
|
|
w.print();
|
|
|
|
}
|
2021-12-17 15:57:11 +01:00
|
|
|
|
2018-06-28 15:40:11 +02:00
|
|
|
private formatString(s: string) {
|
|
|
|
if (s == null) {
|
|
|
|
return null;
|
|
|
|
}
|
2021-12-17 15:57:11 +01:00
|
|
|
return s
|
2018-06-28 15:40:11 +02:00
|
|
|
.replace(/(.{4})/g, "$1 ")
|
2021-12-17 15:57:11 +01:00
|
|
|
.trim()
|
2018-06-28 15:40:11 +02:00
|
|
|
.toUpperCase();
|
2021-12-17 15:57:11 +01:00
|
|
|
}
|
|
|
|
|
2018-06-28 15:40:11 +02:00
|
|
|
private processResponse(response: TwoFactorRecoverResponse) {
|
|
|
|
this.code = this.formatString(response.code);
|
2021-12-17 15:57:11 +01:00
|
|
|
}
|
2018-06-28 15:40:11 +02:00
|
|
|
}
|