예제 #1
0
        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));
        }
예제 #2
0
        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));
        }