Example #1
0
        public ActionResult UserEdit(string id,string returnUrl)
        {
            if (id == null)
            {
                return RedirectToAction("NotFound", "Error");
            }
            AdminUserEditViewResult result = new AdminUserEditViewResult();
            var claims = UserManager.GetClaims(id);
            var banned=claims.FirstOrDefault(m=>m.Type == "Banned");
            result.Roles = RoleManager.Roles.ToList();
            result.User = UserManager.FindById(id);
            result.returnUrl = returnUrl;
            result.Banned = Convert.ToBoolean(result.User.Banned);
            if (result.User != null)
            {
                return View(result);
            }
            else
            {
                return RedirectToAction("NotFound", "Error");
            }

        }
Example #2
0
 public async Task<ActionResult> UserEdit(AdminUserEditViewResult model)
 {
     if (ModelState.IsValid)
     {
         ApplicationUser user = UserManager.FindById(model.User.Id);
         if (user != null)
         {
             //Поиск claim Banned
                             
             //Добавляем, если необходимо
             if ((model.Banned == true) && (user.Banned!=true))
             {
                 user.Banned = true;
             }
             //Удаляем, если необходимо
             else if (user.Banned == true) 
             {
                user.Banned = false;
             }
             //Очищаем все роли пользователя
             foreach (var role in UserManager.GetRoles(user.Id).ToList())
             {
                 await UserManager.RemoveFromRoleAsync(user.Id, role);
             }
             //Добавляем необходимы роли пользователя
             foreach (var role in model.SelectedRoles.Where(m => m.Checked).ToList())
             {
                 await UserManager.AddToRoleAsync(user.Id, role.Name);
             }
             model.Roles = RoleManager.Roles.ToList();
             TempData["toastrMessage"] = String.Format("Пользователь {0} изменен", user.UserName);
             TempData["toastrType"] = "success";
             UserManager.Update(user);
             return View("UserEdit", model);
         }
         else
         {
             return View("UserEdit", model);
         }
     }
     else
     {
         return View("UserEdit", model);
     }
 }