diff --git a/Wave/Components/Account/Pages/LoginWithRecoveryCode.razor b/Wave/Components/Account/Pages/LoginWithRecoveryCode.razor index 4c06b7b..a840154 100644 --- a/Wave/Components/Account/Pages/LoginWithRecoveryCode.razor +++ b/Wave/Components/Account/Pages/LoginWithRecoveryCode.razor @@ -1,6 +1,7 @@ @page "/Account/LoginWithRecoveryCode" @using System.ComponentModel.DataAnnotations +@using System.Globalization @using Microsoft.AspNetCore.Identity @using Wave.Data @@ -8,75 +9,60 @@ @inject UserManager UserManager @inject IdentityRedirectManager RedirectManager @inject ILogger Logger +@inject IStringLocalizer Localizer -Recovery code verification +@Localizer["Title"] -

Recovery code verification

-
- -

- You have requested to log in with a recovery code. This login will not be remembered until you provide - an authenticator app code at log in or disable 2FA and log in again. -

-
-
- + + + +

@Localizer["Message"]

+ - -
- - - -
- + + + + + +
-
-
+ + @code { - private string? message; - private ApplicationUser user = default!; - [SupplyParameterFromForm] private InputModel Input { get; set; } = new(); - [SupplyParameterFromQuery] private string? ReturnUrl { get; set; } - protected override async Task OnInitializedAsync() - { + private string? Message { get; set; } + private ApplicationUser User { get; set; } = default!; + + protected override async Task OnInitializedAsync() { // Ensure the user has gone through the username & password screen first - user = await SignInManager.GetTwoFactorAuthenticationUserAsync() ?? + User = await SignInManager.GetTwoFactorAuthenticationUserAsync() ?? throw new InvalidOperationException("Unable to load two-factor authentication user."); } - private async Task OnValidSubmitAsync() - { - var recoveryCode = Input.RecoveryCode.Replace(" ", string.Empty); - + private async Task OnValidSubmitAsync() { + string recoveryCode = Input.RecoveryCode.Replace(" ", string.Empty); var result = await SignInManager.TwoFactorRecoveryCodeSignInAsync(recoveryCode); - var userId = await UserManager.GetUserIdAsync(user); - - if (result.Succeeded) - { + string userId = await UserManager.GetUserIdAsync(User); + if (result.Succeeded) { Logger.LogInformation("User with ID '{UserId}' logged in with a recovery code.", userId); RedirectManager.RedirectTo(ReturnUrl); - } - else if (result.IsLockedOut) - { + } else if (result.IsLockedOut) { Logger.LogWarning("User account locked out."); RedirectManager.RedirectTo("Account/Lockout"); - } - else - { + } else { Logger.LogWarning("Invalid recovery code entered for user with ID '{UserId}' ", userId); - message = "Error: Invalid recovery code entered."; + Message = Localizer["RecoveryCode_ErrorInvalidCode"]; } } - private sealed class InputModel - { + private sealed class InputModel { [Required] [DataType(DataType.Text)] [Display(Name = "Recovery Code")] diff --git a/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.de-DE.resx b/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.de-DE.resx new file mode 100644 index 0000000..28454b9 --- /dev/null +++ b/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.de-DE.resx @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Anmelden + + + Wiederherstellungsschlüssel + + + Wiederherstellungscode Verifizierung + + + Fehler: Der eingegebene Schlüssel ist nit korrekt. + + + Sie haben angefordert sich mit einem Wiederherstellungsschlüssel anzumelden. Dieser Computer wird sich nicht gemerkt bis Sie sich mit ihrer Authentifizierungsapp anmelden oder 2fa deaktivieren und sich erneut anmelden. + + \ No newline at end of file diff --git a/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.en-GB.resx b/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.en-GB.resx new file mode 100644 index 0000000..4fdb1b6 --- /dev/null +++ b/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.en-GB.resx @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.resx b/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.resx new file mode 100644 index 0000000..160c932 --- /dev/null +++ b/Wave/Resources/Components/Account/Pages/LoginWithRecoveryCode.resx @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Recovery Code Verification + + + You have requested to log in with a recovery code. This login will not be remembered until you provide an authenticator app code at log in or disable 2FA and log in again. + + + Recovery Code + + + xxxx + + + Log in + + + Error: Invalid recovery code entered. + + \ No newline at end of file