public ActionResult ChangeSupportSettings(string returnUrl) { ViewBag.ReturnUrl = returnUrl; var settings = new SupportSettingsModel(); using (var context = new UsersContext()) { var profile = context.UserProfiles.FirstOrDefault(u => u.UserName == User.Identity.Name); settings.PermissionToImpersonate = profile.PermissionToImpersonate; } return(PartialView("_ChangeSupportSettingsPartial", settings)); }
public ActionResult ManageSupportSettings(SupportSettingsModel model) { bool hasLocalAccount = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name)); ViewBag.HasLocalPassword = hasLocalAccount; ViewBag.ReturnUrl = Url.Action("Manage"); if (ModelState.IsValid) { using (var context = new UsersContext()) { var userProfile = context.UserProfiles.FirstOrDefault(u => u.UserName == User.Identity.Name); if (userProfile != null) { try { userProfile.PermissionToImpersonate = model.PermissionToImpersonate; context.SaveChanges(); TraceLog.TraceInfo(string.Format("Changed support settings for user {0}", User.Identity.Name)); } catch (Exception ex) { TraceLog.TraceException("Could not save support settings", ex); return(View(model)); } } else { TraceLog.TraceError(string.Format("Could not find user {0} to change support settings", User.Identity.Name)); return(RedirectToAction("Manage", new { Message = ManageMessageId.ChangeSupportSettingsFailure })); } } return(RedirectToAction("Manage", new { Message = ManageMessageId.ChangeSupportSettingsSuccess })); } else { ModelState.AddModelError("", "One of the values is invalid."); } // If we got this far, something failed, redisplay form return(View(model)); }