All checks were successful
Build And Push Dev Docker Image / docker (push) Successful in 1m28s
77 lines
2.6 KiB
C#
77 lines
2.6 KiB
C#
using Blazorise;
|
|
using FoodsharingSiegen.Server.BaseClasses;
|
|
using FoodsharingSiegen.Server.Auth;
|
|
using FoodsharingSiegen.Shared.Helper;
|
|
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.AspNetCore.Components.Web;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace FoodsharingSiegen.Server.Pages
|
|
{
|
|
public partial class ResetPassword : FsBase
|
|
{
|
|
[Parameter]
|
|
public string Token { get; set; } = string.Empty;
|
|
|
|
public string NewPassword { get; set; } = string.Empty;
|
|
public string ConfirmPassword { get; set; } = string.Empty;
|
|
|
|
public ValidationStatus IsValidPassword { get; set; } = ValidationStatus.None;
|
|
public ValidationStatus IsValidPasswordConfirmation { get; set; } = ValidationStatus.None;
|
|
|
|
public string ErrorMessage { get; set; } = string.Empty;
|
|
public bool IsSuccess { get; set; }
|
|
public bool IsLoading { get; set; }
|
|
public bool IsInitializing { get; set; } = true;
|
|
public bool IsTokenValid { get; set; }
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
IsTokenValid = await AuthService.IsResetTokenValid(Token);
|
|
IsInitializing = false;
|
|
}
|
|
|
|
public void ValidatePasswordConfirmation(ValidatorEventArgs args)
|
|
{
|
|
var confirmPassword = System.Convert.ToString(args.Value);
|
|
if (string.IsNullOrWhiteSpace(confirmPassword))
|
|
{
|
|
args.Status = ValidationStatus.None;
|
|
return;
|
|
}
|
|
|
|
args.Status = confirmPassword == NewPassword ? ValidationStatus.Success : ValidationStatus.Error;
|
|
}
|
|
|
|
public async Task SubmitReset()
|
|
{
|
|
if (IsValidPassword != ValidationStatus.Success || IsValidPasswordConfirmation != ValidationStatus.Success) return;
|
|
|
|
IsLoading = true;
|
|
ErrorMessage = string.Empty;
|
|
await InvokeAsync(StateHasChanged);
|
|
|
|
var result = await AuthService.ResetPassword(Token, NewPassword);
|
|
|
|
if (result.Success)
|
|
{
|
|
IsSuccess = true;
|
|
}
|
|
else
|
|
{
|
|
ErrorMessage = result.Exception?.Message ?? "Ein Fehler ist aufgetreten.";
|
|
}
|
|
|
|
IsLoading = false;
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
public async Task TextEdit_KeyUp(KeyboardEventArgs e)
|
|
{
|
|
if (e.Key == "Enter" && IsValidPassword == ValidationStatus.Success && IsValidPasswordConfirmation == ValidationStatus.Success)
|
|
{
|
|
await SubmitReset();
|
|
}
|
|
}
|
|
}
|
|
} |