Пример #1
0
        public async Task <ActionResult> LockUser(LockUserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(HttpNotFound());
            }
            var result = await _userManager.SetLockoutEnabledAsync(model.UserId, true);

            TempData["message"] = "Ошибка";
            if (result.Succeeded)
            {
                var user = userProfileService.GetUserProfile(u => u.Id == model.UserId, i => i.User);
                user.LockoutReason = model.LockoutReason;
                await _userManager.SetLockoutEndDateAsync(model.UserId, DateTimeOffset.MaxValue);

                var updateStampResult = await _userManager.UpdateSecurityStampAsync(model.UserId);

                userProfileService.SaveUserProfile();
                if (result.Succeeded && updateStampResult.Succeeded)
                {
                    TempData["message"] = "Пользователь заблокирован";
                }
            }
            return(RedirectToAction("List"));
        }
Пример #2
0
 public ActionResult LockUser(int?id)
 {
     if (id != null)
     {
         var model = new LockUserViewModel()
         {
             UserId = id.Value
         };
         return(View(model));
     }
     return(HttpNotFound());
 }
Пример #3
0
        public async Task <JsonResult> LockUser(LockUserViewModel model)
        {
            var result = new { Success = true, Message = "Success" };

            if (ModelState.IsValid)
            {
                try
                {
                    // Get current user.
                    var user = await _userManager.FindByIdAsync(model.UserId);

                    user.LockoutEndDateUtc = model.Lock ? DateTime.MaxValue : DateTime.UtcNow;
                    user.LastLoginUtc      = DateTime.UtcNow;

                    var identityResult = await _userManager.UpdateAsync(user);

                    if (!identityResult.Succeeded)
                    {
                        result = new { Success = false, Message = identityResult.Errors.First() };
                    }
                }
                catch (Exception ex)
                {
                    _contextManager.ResponseManager.StatusCode = 500;
                    _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, ex.Message);
                    result = new { Success = false, ex.Message };
                }
            }
            else
            {
                var errors = ModelState.GetModelStateMesssages();
                result = new { Success = false, Message = errors.First() };
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }