public async Task AdminShouldBeAbleToResetUserPassword(CreateCustomerUserModel createCustomerUserModel) { var client = _webbApplicationFactory.CreateClient(); await Utils.CreateCustomer(client, createCustomerUserModel); await Utils.ActivateUserAsync(client, createCustomerUserModel.Email); await Utils.LoginAdminAsync(client); var model = new ChangePasswordByAdminModel { NewPassword = "******", SubjectId = createCustomerUserModel.Id, }; (await client.PostAsync("api/v1/users/reset-user-password-by-admin", model.ToJsonContent())) .EnsureSuccessStatusCode(); var extra = new Dictionary <string, string> { { "deviceId", "test-device1" }, }; var tokenResponse = await Utils.RequestPasswordTokenAsync(client, createCustomerUserModel.Email, model.NewPassword, extra); tokenResponse.IsError.Should().BeFalse(); }
public async Task <IActionResult> ResetPasswordByAdminAsync(ChangePasswordByAdminModel model) { var user = await _userManager.FindByIdAsync(model.SubjectId); var token = await _userManager.GeneratePasswordResetTokenAsync(user); await _userManager.ResetPasswordAsync(user, token, model.NewPassword); _dbContext.ActivityLogs.Add(new ActivityLog(ActivityLogType.PasswordResetByAdmin, user.Id, User.Identity.Name)); await _dbContext.SaveChangesAsync(); return(Ok()); }