public async Task <IActionResult> UpdatePassword(UpdatePasswordViewModel model) { var user = await _userManager.GetUserAsync(HttpContext.User); if (ModelState.IsValid) { var verifyHashed = _passwordHasher.VerifyHashedPassword(user, user.PasswordHash, model.OldPassword); if (verifyHashed == PasswordVerificationResult.Success) { user.PasswordHash = _passwordHasher.HashPassword(user, model.NewPassword); var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(user, true); return(RedirectToAction("Index")); } ModelState.AddIdentityError(result.Errors); return(View(model)); } ModelState.AddModelError(nameof(model.OldPassword), Messages.OldPasswordFail); return(View(model)); } return(View(model)); }
public async Task <IActionResult> LoginEmail([FromBody] LoginDto login) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await GetUserIdentity(login); if (user == null) { ModelState.AddIdentityError("BadLogin", "Invalid email or password."); return(BadRequest(ModelState)); } // var claims = await _userManager.GetClaimsAsync(user); var token = _jwtTokenFactory.GenerateToken(user); var returnData = new { token, // user }; return(Ok(returnData)); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = _mapper.Map <VesizleUser>(model); var identityResult = await _passwordValidator.ValidateAsync(_userManager, user, model.Password); if (identityResult.Succeeded) { var validateResult = await _userValidator.ValidateAsync(_userManager, user); if (validateResult.Succeeded) { user.PasswordHash = _passwordHasher.HashPassword(user, model.Password); var createResult = await _userManager.CreateAsync(user); var roleAddResult = await _userManager.AddToRoleAsync(user, UserRoleNames.Standard); if (createResult.Succeeded && roleAddResult.Succeeded) { return(RedirectToAction("Index", "Home")); } ModelState.AddIdentityError(createResult.Errors); ModelState.AddIdentityError(roleAddResult.Errors); return(View(model)); } ModelState.AddIdentityError(validateResult.Errors); return(View(model)); } ModelState.AddIdentityError(nameof(model.Password), identityResult.Errors); return(View(model)); } return(View(model)); }
public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model, string userId, string token) { if (ModelState.IsValid) { VesizleUser user = await _userManager.FindByIdAsync(userId); var codeDecodedBytes = WebEncoders.Base64UrlDecode(token); var codeDecoded = Encoding.UTF8.GetString(codeDecodedBytes); IdentityResult result = await _userManager.ResetPasswordAsync(user, codeDecoded, model.Password); if (result.Succeeded) { var result2 = await _userManager.UpdateSecurityStampAsync(user); if (result2.Succeeded) { return(RedirectToAction("Login")); } ModelState.AddIdentityError(result2.Errors); return(View(model)); } ModelState.AddIdentityError(nameof(model.RePassword), result.Errors); return(View(model)); } return(View(model)); }
public async Task <IActionResult> Delete(RoleDeleteViewModel model) { if (ModelState.IsValid) { var role = await _roleManager.FindByIdAsync(model.Id); if (role != null) { var result = await _roleManager.DeleteAsync(role); if (result.Succeeded) { return(RedirectToAction("Index")); } ModelState.AddIdentityError("Id", result.Errors); } return(NotFound()); } return(View(model)); }
public async Task <IActionResult> Edit(RoleEditViewModel model) { if (ModelState.IsValid) { var role = await _roleManager.FindByIdAsync(model.Id); if (role != null) { role.Name = model.Name; var result = await _roleManager.UpdateAsync(role); if (result.Succeeded) { return(RedirectToAction("Index")); } ModelState.AddIdentityError(nameof(model.Name), result.Errors); } return(NotFound()); } return(View(model)); }
public async Task <IActionResult> Edit(UserUpdateViewModel model) { var user = await _userManager.GetUserAsync(HttpContext.User); if (ModelState.IsValid) { user.FirstName = model.FirstName; user.LastName = model.LastName; user.Email = model.Email; var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(user, true); return(RedirectToAction("Index")); } ModelState.AddIdentityError(result.Errors); return(View(model)); } return(View()); }