public async Task <ActionResult> RegisterConfirmed(string id, string Email, params string[] SelectedRole) { if (ModelState.IsValid) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var user = await UserManager.FindByIdAsync(id); if (user == null) { return(HttpNotFound()); } user.ModifiedBy = HttpContext.User.Identity.GetUserId(); user.ModifiedDate = DateTime.Now; user.Email = Email; user.UserName = Email; user.HasBeenActivated = true; user.Status = true; if (SelectedRole != null) { SelectedRole = SelectedRole ?? new string[] { }; var userRoles = await UserManager.GetRolesAsync(user.Id); var result = await UserManager.AddToRolesAsync(user.Id, SelectedRole.Except(userRoles).ToArray <string>()); if (!result.Succeeded) { ModelState.AddModelError("", result.Errors.First()); return(View()); } result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(SelectedRole).ToArray <string>()); if (!result.Succeeded) { ModelState.AddModelError("", result.Errors.First()); return(View()); } } var activateResult = await UserManager.UpdateAsync(user); if (activateResult.Succeeded) { string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, "Create Password", "Please create your password by clicking this link or pasting it in your browser: \n" + callbackUrl); return(RedirectToAction("CreatePasswordConfirmation", "Account")); } } return(View()); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } var appUserToUpdate = await _userManager.FindByIdAsync(AppUser.Id); appUserToUpdate.UserName = AppUser.UserName; appUserToUpdate.FirstName = AppUser.FirstName; appUserToUpdate.LastName = AppUser.LastName; appUserToUpdate.Email = AppUser.Email; var resultUpdate = await _userManager.UpdateAsync(appUserToUpdate); if (resultUpdate.Succeeded) { UserRoles = await _userManager.GetRolesAsync(AppUser); if (SelectedRole.Except(UserRoles).Count() != 0) { var resultRoleAdd = await _userManager.AddToRolesAsync(appUserToUpdate, SelectedRole.Except(UserRoles).ToList <string>()); } if (UserRoles.Except(SelectedRole).Count() != 0) { var resultRoleRemove = await _userManager.RemoveFromRolesAsync(appUserToUpdate, UserRoles.Except(SelectedRole).ToList <string>()); } if (!string.IsNullOrEmpty(ChangePassword)) { if (await _userManager.HasPasswordAsync(appUserToUpdate)) { var resultRemove = await _userManager.RemovePasswordAsync(appUserToUpdate); } var resultAdd = await _userManager.AddPasswordAsync(appUserToUpdate, ChangePassword); } // if (LockoutEnabled != await _userManager.IsLockedOutAsync(appUserToUpdate) && await _userManager.GetLockoutEnabledAsync(appUserToUpdate)) // { // var resultLockout = await _userManager.SetLockoutEnabledAsync(appUserToUpdate, LockoutEnabled); // } } return(RedirectToPage("./Index")); }
public async Task <ActionResult> RetireConfirmed(string id, params string[] SelectedRole) { if (ModelState.IsValid) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var user = await UserManager.FindByIdAsync(id); if (user == null) { return(HttpNotFound()); } user.ModifiedBy = HttpContext.User.Identity.GetUserId(); user.ModifiedDate = DateTime.Now; user.Status = !user.Status; if (user.Status == true & user.HasBeenActivated == false) { user.HasBeenActivated = true; } if (SelectedRole != null) { SelectedRole = SelectedRole ?? new string[] { }; var userRoles = await UserManager.GetRolesAsync(user.Id); var result = await UserManager.AddToRolesAsync(user.Id, SelectedRole.Except(userRoles).ToArray <string>()); if (!result.Succeeded) { ModelState.AddModelError("", result.Errors.First()); return(View()); } result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(SelectedRole).ToArray <string>()); if (!result.Succeeded) { ModelState.AddModelError("", result.Errors.First()); return(View()); } } var activateResult = await UserManager.UpdateAsync(user); if (activateResult.Succeeded) { if (user.Status == true) { await UserManager.SendEmailAsync(user.Id, "CMC account is activated", "Your account has been activated by a CMC member. You now have access to the CMC Data Portal."); } else if (user.Status == false) { await UserManager.SendEmailAsync(user.Id, "CMC account is deactivated", "Your account has been deactivated by a CMC member. You may no longer access to the CMC Data Portal."); } return(RedirectToAction("Index")); } } return(View()); }