// GET: Admin/Staffs/ChangePassword public ActionResult ChangePassword() { int staffId = ((Staff)Session["Staff"]).Id; ViewBag.OldPassword = TempData["OldPassword"]?.ToString(); ViewBag.Phone = ((Staff)Session["Staff"]).Phone; ViewBag.CreateAt = ((Staff)Session["Staff"]).CreatedAt; ChangePasswordViewmodel viewmodel = new ChangePasswordViewmodel(); viewmodel.Id = staffId; return(View(viewmodel)); }
public void Initialize() { userRepository = new Mock <IUserRepository>(); userService = new Mock <IUserService>(); logger = new Mock <ILogger <UserController> >(); botiService = new Mock <IBoticarioService>(); userController = new UserController(logger.Object); user = new User { Cpf = "01234567895", Email = "*****@*****.**", Name = "Teste", Role = "Usuario", CreatedAt = new DateTimeOffset(), Id = "5f0e43f02f695b5ae0d8526e" }; response = new Response(); changePasswordViewmodel = new ChangePasswordViewmodel { CurrentPassword = "******", NewPassword = "******", ConfirmNewPassword = "******" }; }
public ActionResult ChangePassword(ChangePasswordViewmodel model) { if (ModelState.IsValid) { var staff = db.Staffs.Where(x => x.Id == model.Id).FirstOrDefault(); if (!Hashing.ValidatePassword(model.OldPassword, staff.Password)) { TempData["OldPassword"] = "******"; return(RedirectToAction("ChangePassword")); } else { staff.Password = Hashing.HashPassword(model.ConfirmNewPassword); db.Entry(staff).State = EntityState.Modified; db.SaveChanges(); } } return(RedirectToAction("Me")); }
public async Task <Response> ChangePassword(ChangePasswordViewmodel changePasswordViewmodel, string email) { var response = new Response(); try { var user = await _userRepository.GetByEmail(email); if (user == null) { _logger.LogInformation($"Usuário com e-mail: {user.Email} não encontrado!"); response.AddNotification("Usuário não encontrado!"); return(response); } if (!user.Password.VerifyHashPassword(changePasswordViewmodel.CurrentPassword)) { _logger.LogInformation($"Senha atual não corresponde com a informada!"); response.AddNotification("Senha atual não corresponde com a informada!"); return(response); } if (changePasswordViewmodel.NewPassword != changePasswordViewmodel.ConfirmNewPassword) { _logger.LogInformation($"A nova senha e a confirmação da nova senha estão difetrentes!"); response.AddNotification("A nova senha e a confirmação da nova senha estão difetrentes!"); return(response); } user.Password = changePasswordViewmodel.NewPassword.ToHashPassword(); await _userRepository.UpdateAsync(user); response.AddValue(new UserViewModel(user)); } catch (Exception ex) { _logger.LogError(ex.Message); response.AddNotification(ex.Message); } return(response); }
public async Task <IActionResult> ChangePassword([FromServices] IUserService userService, [FromBody] ChangePasswordViewmodel changePasswordViewmodel) { try { string email = User?.Identity.Name; var response = await userService.ChangePassword(changePasswordViewmodel, email); if (response.Invalid) { var foundProblem = response.GetProblemDetails(response); _logger.LogWarning($"{foundProblem}"); return(BadRequest(foundProblem)); } _logger.LogInformation($"Usuário ({User?.Identity.Name}) alterou a senha"); return(Ok()); } catch (Exception ex) { _logger.LogError(ex.Message); return(BadRequest(ex)); } }