public async Task <ActionResult> InternalLogin(InternalLoginViewModel viewModel) { var returnUrl = GetSafeReturnUrl(Request.UrlReferrer); if (!ModelState.IsValid) { InitializeLoginViewModel(viewModel); return(PartialView("Login", viewModel)); } var result = await SignInManager.PasswordSignInAsync(viewModel.Email, viewModel.Password, viewModel.RememberMe, shouldLockout : true); switch (result) { case SignInStatus.Success: break; case SignInStatus.LockedOut: return(PartialView("Lockout", viewModel)); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", "Login", new { ReturnUrl = viewModel.ReturnUrl, RememberMe = viewModel.RememberMe })); default: ModelState.AddModelError("Password", _localizationService.GetString("/Login/Form/Error/WrongPasswordOrEmail")); viewModel.Password = null; return(PartialView("Login", viewModel)); } return(Json(new { Success = true, ReturnUrl = returnUrl }, JsonRequestBehavior.DenyGet)); }
public void InternalLogin_WhenSuccessful_ShouldReturnJson() { _signinManagerMock.Setup( x => x.PasswordSignInAsync( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>())) .Returns(Task.FromResult(SignInStatus.Success)); var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = true, ReturnUrl = _testUrl, }; var result = _subject.InternalLogin(model).Result as JsonResult; var expectedResult = new JsonResult { Data = new { Success = true, ReturnUrl = "/" }, // ReturnUrl should always be without hostname JsonRequestBehavior = JsonRequestBehavior.DenyGet }; result.ShouldBeEquivalentTo(expectedResult); }
public async Task <ActionResult> SignIn(InternalLoginViewModel model, string returnUrl) { if (ModelState.IsValid) { var loginResult = await weeeAuthorization.SignIn(model.Email, model.Password, model.RememberMe); if (loginResult.Successful) { return(this.LoginRedirect(loginResult.DefaultLoginAction, returnUrl)); } ModelState.AddModelError(string.Empty, loginResult.ErrorMessage); } return(View(model)); }
public async void HttpPost_SignIn_ModelIsInvalid_ShouldRedirectViewWithModel() { var controller = AccountController(); controller.ModelState.AddModelError("Key", "Any error"); var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = false }; var result = await controller.SignIn(model, "AnyUrl"); Assert.IsType <ViewResult>(result); Assert.Equal(model, ((ViewResult)(result)).Model); Assert.False(controller.ModelState.IsValid); }
public async void HttpPost_SignIn_ModelIsValid_AndSignInSucceeds_ShouldRedirectToDefaultLoginAction() { var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = false }; var defaultLoginAction = A.Dummy <ActionResult>(); A.CallTo(() => apiClient.SendAsync(A <string> ._, A <GetAdminUserStatus> ._)).Returns(UserStatus.Active); A.CallTo(() => weeeAuthorization.SignIn(A <string> ._, A <string> ._, A <bool> ._)) .Returns(LoginResult.Success("dsadsada", defaultLoginAction)); var result = await AccountController().SignIn(model, string.Empty); Assert.Equal(defaultLoginAction, result); }
public void InternalLogin_WhenFailure_ShouldReturnModelErrors() { _signinManagerMock.Setup( x => x.PasswordSignInAsync( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>())) .Returns(Task.FromResult(SignInStatus.Failure)); var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = true, ReturnUrl = _testUrl, }; var result = _subject.InternalLogin(model); _subject.ModelState.Values.First().Errors.First().ErrorMessage.Should().Be("WrongPasswordOrEmail"); }
public void InternalLogin_WhenLockedOut_ShoulReturndLockoutView() { _signinManagerMock.Setup( x => x.PasswordSignInAsync( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>())) .Returns(Task.FromResult(SignInStatus.LockedOut)); var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = true, ReturnUrl = _testUrl, }; var result = _subject.InternalLogin(model).Result as PartialViewResult; result.ViewName.Should().Be("Lockout"); }
public async void HttpPost_SignIn_ModelIsValid_ButSignInFails_ShouldAddModelError_AndReturnViewWithModel() { var loginError = ":("; var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = false }; A.CallTo(() => weeeAuthorization.SignIn(A <string> ._, A <string> ._, A <bool> ._)) .Returns(LoginResult.Fail(loginError)); var controller = AccountController(); var result = await controller.SignIn(model, "AnyUrl"); Assert.IsType <ViewResult>(result); Assert.Equal(model, ((ViewResult)result).Model); Assert.False(controller.ModelState.IsValid); Assert.Single(controller.ModelState.Values); Assert.Single(controller.ModelState.Values.Single().Errors); Assert.Equal(loginError, controller.ModelState.Values.Single().Errors.Single().ErrorMessage); }
public async void HttpPost_SignIn_ModelIsValid_ButSignInFails_ShouldAddModelError_AndReturnViewWithModel() { var loginError = ":("; var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = false }; A.CallTo(() => weeeAuthorization.SignIn(A<string>._, A<string>._, A<bool>._)) .Returns(LoginResult.Fail(loginError)); var controller = AccountController(); var result = await controller.SignIn(model, "AnyUrl"); Assert.IsType<ViewResult>(result); Assert.Equal(model, ((ViewResult)result).Model); Assert.False(controller.ModelState.IsValid); Assert.Single(controller.ModelState.Values); Assert.Single(controller.ModelState.Values.Single().Errors); Assert.Equal(loginError, controller.ModelState.Values.Single().Errors.Single().ErrorMessage); }
public async void HttpPost_SignIn_ModelIsValid_AndSignInSucceeds_ShouldRedirectToDefaultLoginAction() { var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = false }; var defaultLoginAction = A.Dummy<ActionResult>(); A.CallTo(() => apiClient.SendAsync(A<string>._, A<GetAdminUserStatus>._)).Returns(UserStatus.Active); A.CallTo(() => weeeAuthorization.SignIn(A<string>._, A<string>._, A<bool>._)) .Returns(LoginResult.Success("dsadsada", defaultLoginAction)); var result = await AccountController().SignIn(model, string.Empty); Assert.Equal(defaultLoginAction, result); }
public async void HttpPost_SignIn_ModelIsInvalid_ShouldRedirectViewWithModel() { var controller = AccountController(); controller.ModelState.AddModelError("Key", "Any error"); var model = new InternalLoginViewModel { Email = "*****@*****.**", Password = "******", RememberMe = false }; var result = await controller.SignIn(model, "AnyUrl"); Assert.IsType<ViewResult>(result); Assert.Equal(model, ((ViewResult)(result)).Model); Assert.False(controller.ModelState.IsValid); }
public async Task<ActionResult> SignIn(InternalLoginViewModel model, string returnUrl) { if (ModelState.IsValid) { var loginResult = await weeeAuthorization.SignIn(model.Email, model.Password, model.RememberMe); if (loginResult.Successful) { return this.LoginRedirect(loginResult.DefaultLoginAction, returnUrl); } ModelState.AddModelError(string.Empty, loginResult.ErrorMessage); } return View(model); }
private void InitializeLoginViewModel(InternalLoginViewModel viewModel) { StartPage startPage = _contentLoader.Get <StartPage>(ContentReference.StartPage); viewModel.ResetPasswordPage = startPage.ResetPasswordPage; }