Carrotware.CMS.Mvc.UI.Admin.Controllers.CmsContentController.Login C# (CSharp) Method

Login() private method

private Login ( LoginInfo model ) : Task
model Carrotware.CMS.UI.Components.LoginInfo
return Task
		public async Task<ActionResult> Login(LoginInfo model) {
			bool rememberme = false;

			model.ReconstructSettings();
			this.ViewData[LoginInfo.Key] = model;

			LoadPage(model.Settings.Uri);

			var settings = model.Settings;

			string partialName = settings.PostPartialName;

			if (settings.UseValidateHuman) {
				bool IsValidated = model.ValidateHuman.ValidateValue(model.ValidationValue);
				if (!IsValidated) {
					ModelState.AddModelError("ValidationValue", model.ValidateHuman.AltValidationFailText);
					model.ValidationValue = String.Empty;
				}
			}

			if (ModelState.IsValid) {
				ModelState.Clear();

				ApplicationUser user = await securityHelper.UserManager.FindByNameAsync(model.UserName);
				SignInStatus result = await securityHelper.SignInManager.PasswordSignInAsync(model.UserName, model.Password, rememberme, shouldLockout: true);

				model.LogInStatus = result;

				switch (result) {
					case SignInStatus.Success:
						await securityHelper.UserManager.ResetAccessFailedCountAsync(user.Id);
						break;

					case SignInStatus.RequiresVerification:
						if (!String.IsNullOrEmpty(settings.PostPartialNameVerification)) {
							partialName = settings.PostPartialNameVerification;
						}
						break;

					case SignInStatus.LockedOut:

						ModelState.AddModelError(String.Empty, "User locked out.");

						if (!String.IsNullOrEmpty(settings.PostPartialNameLockout)) {
							partialName = settings.PostPartialNameLockout;
						}
						break;

					case SignInStatus.Failure:
					default:
						ModelState.AddModelError(String.Empty, "Invalid login attempt.");

						if (!String.IsNullOrEmpty(settings.PostPartialNameFailure)) {
							partialName = settings.PostPartialNameFailure;
						}

						if (user.LockoutEndDateUtc.HasValue && user.LockoutEndDateUtc.Value < DateTime.UtcNow) {
							user.LockoutEndDateUtc = null;
							user.AccessFailedCount = 1;
							securityHelper.UserManager.Update(user);
						}

						break;
				}
			}

			return PartialView(partialName, model);
		}
	}