public async Task<LoginResult> AuthenticateUser(LoginModel loginModel) { if (string.IsNullOrWhiteSpace(loginModel.ReturnUrl)) loginModel.ReturnUrl = null; string message = null; User user = _userService.GetUserByEmail(loginModel.Email); if (user == null) message = "Incorrect email address."; if (user != null && user.IsActive) { if (_passwordManagementService.ValidateUser(user, loginModel.Password)) { var guid = CurrentRequestData.UserGuid; await _authorisationService.SetAuthCookie(user, loginModel.RememberMe); CurrentRequestData.CurrentUser = user; EventContext.Instance.Publish<IOnUserLoggedIn, UserLoggedInEventArgs>( new UserLoggedInEventArgs(user, guid)); return user.IsAdmin ? new LoginResult { Success = true, RedirectUrl = loginModel.ReturnUrl ?? "~/admin" } : new LoginResult { Success = true, RedirectUrl = loginModel.ReturnUrl ?? "~/" }; } message = "Incorrect email or password."; } return new LoginResult { Success = false, Message = message }; }
public void LoginController_Show_ShouldSetViewDataAsModel() { var loginModel = new LoginModel(); var result = _loginController.Show(null, loginModel); result.ViewData["login-model"].Should().Be(loginModel); }
public void LoginController_Show_ShouldUseTempDataModelBeforePassedModel() { var model1 = new LoginModel(); var model2 = new LoginModel(); _loginController.TempData["login-model"] = model1; var result = _loginController.Show(null, model2); result.ViewData["login-model"].Should().Be(model1); }
public async Task<LoginAndAssociateOrderResult> LoginAndAssociateOrder(LoginModel model, Order order) { LoginResult authenticateUser = await _loginService.AuthenticateUser(model); if (!authenticateUser.Success) return new LoginAndAssociateOrderResult { Error = "We were unable to log you in, please check your password and try again" }; order.User = CurrentRequestData.CurrentUser; _session.Transact(session => session.Update(order)); return new LoginAndAssociateOrderResult(); }
public void LoginController_Post_IfModelIsNotNullButModelStateIsInvalidShouldNotCallAuthenticateUser() { _loginController.ModelState.AddModelError("test", "error"); var loginModel = new LoginModel(); _loginController.Post(loginModel); A.CallTo(() => _loginService.AuthenticateUser(loginModel)).MustNotHaveHappened(); }
public void LoginController_Post_IfAuthenticateUserReturnsFailureShouldSetMessageToModel() { var loginModel = new LoginModel(); A.CallTo(() => _loginService.AuthenticateUser(loginModel)) .Returns(Task.Run(() => new LoginResult {Success = false, Message = "failure message"})); RedirectResult redirectResult = _loginController.Post(loginModel).Result; loginModel.Message.Should().Be("failure message"); }
public void LoginController_Post_IfAuthenticateUserReturnsFailureRedirectToLoginPage() { var loginModel = new LoginModel(); A.CallTo(() => _loginService.AuthenticateUser(loginModel)) .Returns(Task.Run(() => new LoginResult {Success = false})); var redirectResult = _loginController.Post(loginModel).Result; redirectResult.Url.Should().Be("~/login-page"); }
public void LoginController_Post_IfAuthenticateUserReturnsSuccessShouldRedirectToReturnedUrl() { var loginModel = new LoginModel(); A.CallTo(() => _loginService.AuthenticateUser(loginModel)) .Returns(Task.Run(() => new LoginResult { Success = true, RedirectUrl = "redirect-url" })); var redirectResult = _loginController.Post(loginModel).Result; redirectResult.Url.Should().Be("redirect-url"); }