public async Task <ActionResult> Manage(ManageUserViewModel model) { bool hasPassword = HasPassword(); ViewBag.HasLocalPassword = hasPassword; ViewBag.ReturnUrl = Url.Action("Manage"); if (hasPassword) { if (ModelState.IsValid) { IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); await SignInAsync(user, isPersistent : false); return(RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess })); } else { AddErrors(result); } } } else { // User does not have a password so remove any validation errors caused by a missing OldPassword field ModelState state = ModelState["OldPassword"]; if (state != null) { state.Errors.Clear(); } if (ModelState.IsValid) { IdentityResult result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword); if (result.Succeeded) { return(RedirectToAction("Manage", new { Message = ManageMessageId.SetPasswordSuccess })); } else { AddErrors(result); } } } ApplicationUser usertmp = db.Users.FirstOrDefault <ApplicationUser>(i => i.UserName == User.Identity.Name); ViewData["ChangeSettingsModel"] = new ChangeAccountViewModel { PictureUrl = usertmp.ImageUrl, TimeZoneInfo = usertmp.TimeZoneInfoId }; // If we got this far, something failed, redisplay form return(View(model)); }
// // GET: /Account/Manage public ActionResult Manage(ManageMessageId?message) { ApplicationUser user = db.Users.FirstOrDefault <ApplicationUser>(i => i.UserName == User.Identity.Name); //ViewBag.ChangeSettingsModel = new ChangeAccountViewModel { PictureUrl = user.ImageUrl, TimeZoneInfo = user.TimeZoneInfoId }; ViewData["ChangeSettingsModel"] = new ChangeAccountViewModel { PictureUrl = user.ImageUrl, TimeZoneInfo = user.TimeZoneInfoId }; ViewBag.StatusMessage = message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set." : message == ManageMessageId.RemoveLoginSuccess ? "The external login was removed." : message == ManageMessageId.Error ? "An error has occurred." : ""; ViewBag.HasLocalPassword = HasPassword(); ViewBag.ReturnUrl = Url.Action("Manage"); return(View()); }
public ActionResult Change(ChangeAccountViewModel model) { if (ModelState.IsValid) { ApplicationUser user = db.Users.FirstOrDefault <ApplicationUser>(i => i.UserName == User.Identity.Name); if (user == null) { return(View("Error")); } user.ImageUrl = model.PictureUrl; user.TimeZoneInfoId = model.TimeZoneInfo; db.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); } // If we got this far, something failed, redisplay form return(RedirectToAction("Manage", "Account")); }
public async Task <ActionResult> ChangeAccount(ChangeAccountViewModel cavm) { //if user forgot a field, send them back to //change password page to try again AppUser userLoggedIn = await _userManager.FindByNameAsync(User.Identity.Name); if (ModelState.IsValid == false && cavm.NewBirthday != default) { return(View(cavm)); } //Find the logged in user using the UserManager String userType = ""; if (_userManager.IsInRoleAsync(userLoggedIn, "Employee").Result) { userType = "Employee"; } else if (_userManager.IsInRoleAsync(userLoggedIn, "Manager").Result) { userType = "Manager"; } else { userType = "Customer"; } if (cavm.NewBirthday != default) { if (userType == "Customer" && cavm.Age < 13) { ViewBag.BirthdayErrorMessage = "You must be at least 13 years old to own an account"; return(View(cavm)); } if (userType == "Manager" && cavm.Age < 18) { ViewBag.BirthdayErrorMessage = "You must be at least 18 years old to own a manager account"; return(View(cavm)); } if (userType == "Employee" && cavm.Age < 18) { ViewBag.BirthdayErrorMessage = "You must be at least 18 years old to own an employee account"; return(View(cavm)); } } //Attempt to change the password using the UserManager try { //update the scalar properties if (cavm.NewBirthday != default) { userLoggedIn.Birthday = cavm.NewBirthday; } if (cavm.NewPhoneNumber != null) { userLoggedIn.PhoneNumber = cavm.NewPhoneNumber; } if (cavm.NewAddress != null) { userLoggedIn.Address = cavm.NewAddress; } if (cavm.NewCity != null) { userLoggedIn.City = cavm.NewCity; } if (cavm.NewState != null) { userLoggedIn.State = cavm.NewState; } if (cavm.NewZip != null) { userLoggedIn.Zip = cavm.NewZip; } //save changes _context.Update(userLoggedIn); await _context.SaveChangesAsync(); } catch (Exception ex) { return(View("Error", new String[] { "There was a problem editing this record", ex.Message })); } return(RedirectToAction("Index")); }
public async Task <ActionResult> ChangeOtherAccount(String id, ChangeAccountViewModel cavm) { //if user forgot a field, send them back to //change password page to try again //AppUser userLoggedIn = await _userManager.FindByNameAsync(User.Identity.Name); AppUser user = _context.Users //.FirstOrDefault(u => u.UserName == id); .Where(u => u.Email == id) .Include(mo => mo.MovieOrders) .ThenInclude(mo => mo.Tickets) .ThenInclude(mo => mo.MovieShowing) .ThenInclude(mo => mo.Movie) .Include(mo => mo.OrdersReceived) .FirstOrDefault(); String userType = ""; if (_userManager.IsInRoleAsync(user, "Employee").Result) { userType = "Employee"; } else if (_userManager.IsInRoleAsync(user, "Manager").Result) { userType = "Manager"; } else { userType = "Customer"; } if (ModelState.IsValid == false && cavm.NewBirthday != default) { return(View(cavm)); } //Find the logged in user using the UserManager if (cavm.NewBirthday != default) { if (userType == "Customer" && cavm.Age < 13) { ViewBag.BirthdayErrorMessage = "Customers must be at least 13 years old to own an account"; return(View(cavm)); } if (userType == "Manager" && cavm.Age < 18) { ViewBag.BirthdayErrorMessage = "Employees must be at least 18 years old to own an account"; return(View(cavm)); } if (userType == "Employee" && cavm.Age < 18) { ViewBag.BirthdayErrorMessage = "Employees must be at least 18 years old to own an account"; return(View(cavm)); } } //Attempt to change the password using the UserManager try { //update the scalar properties if (cavm.NewFirst != default) { user.FirstName = cavm.NewFirst; } if (cavm.NewMiddle != default) { user.MiddleInitial = cavm.NewMiddle; } if (cavm.NewLast != default) { user.LastName = cavm.NewLast; } if (cavm.NewBirthday != default) { user.Birthday = cavm.NewBirthday; } if (cavm.NewPhoneNumber != null) { user.PhoneNumber = cavm.NewPhoneNumber; } if (cavm.NewAddress != null) { user.Address = cavm.NewAddress; } if (cavm.NewCity != null) { user.City = cavm.NewCity; } if (cavm.NewState != null) { user.State = cavm.NewState; } if (cavm.NewZip != null) { user.Zip = cavm.NewZip; } //save changes _context.Update(user); await _context.SaveChangesAsync(); } catch (Exception ex) { return(View("Error", new String[] { "There was a problem editing this record", ex.Message })); } return(RedirectToAction("SeeAll")); }