@page "/Settings/Users/{id:guid}/ChangePassword" @inject UserService UserService @inject IMessageService MessageService @inject ILogger Logger @attribute [Authorize(Roles = RoleService.AdministratorRoleName)]
@code { [Parameter] public Guid Id { get; set; } User User; ChangePasswordModel Model = new(); protected override async Task OnInitializedAsync() { if (Id != Guid.Empty) User = await UserService.GetAsync(Id); } async void Change() { try { if (Model.NewPassword != Model.NewPasswordConfirm) { MessageService.Error("Passwords do not match"); return; } var result = await UserService.ChangePassword(User.UserName, Model.NewPassword); if (!result.Succeeded) foreach (var error in result.Errors) MessageService.Error(error.Description); else MessageService.Success("Password changed!"); } catch (Exception ex) { MessageService.Error("The user's password could not be changed"); Logger.LogError(ex, "The user's password could not be changed"); } } public class ChangePasswordModel { public string NewPassword { get; set; } public string NewPasswordConfirm { get; set; } } }