public async Task Login_InValidPassword_BadRequest() { // Arrange var user = new User { Email = "", FirstName = "", LastName = "", Id = Guid.NewGuid(), City = "", Birthday = DateTime.Now, Gender = "", IsExpert = false }; var dtoLoginUser = new DTOLoginUser { Email = It.IsAny <string>(), Password = It.IsAny <string>() }; _userManagerMock.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).Returns(Task.FromResult(user)); _signInManagerMock.Setup(x => x.CheckPasswordSignInAsync(It.IsAny <User>(), It.IsAny <string>(), false)) .Returns(Task.FromResult(SignInResult.Failed)); _uut = new AccountController(_factoryMock.Object, _userManagerMock.Object, _signInManagerMock.Object, _configurationMock.Object); // Act var result = await _uut.Login(dtoLoginUser); // Assert Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult)); }
public async Task <IActionResult> Profile() { var email = HttpContext.User.Identity.Name; var user = _userRepo.GetUserByEmail(email); DTOLoginUser userToReturn = new DTOLoginUser(); userToReturn.Name = user.Name; userToReturn.Email = user.Email; userToReturn.UserName = user.UserName; userToReturn.Address = user.Address; userToReturn.Gender = user.Gender; userToReturn.Note = user.Note; userToReturn.NbNotes = user.NbNotes; var transactionList = new List <DTOArticle>(); var userTransactions = await _transactionRepo.GetTransactionByUserId(user.Id); foreach (var transaction in userTransactions) { var toInsert = new DTOArticle(); var article = await _articleRepo.GetById(transaction.ArticleId); toInsert.Name = article.Name; toInsert.State = article.State; toInsert.Id = article.Id; if (toInsert.Transaction == null) { toInsert.Transaction = new DTOTransaction(); toInsert.Transaction.TransactionState = transaction.TransactionState; } var sellerFromDb = await _userRepo.GetById(article.SellerId); var sellerToInsert = new DTOUserPublic(); sellerToInsert.Name = sellerFromDb.Name; sellerToInsert.UserName = sellerFromDb.UserName; toInsert.User = sellerToInsert; transactionList.Add(toInsert); } ViewData["transactionlist"] = transactionList; return(View(userToReturn)); }
public async Task <IActionResult> Login([FromBody] DTOLoginUser dtoUser) { var user = await _userManager.FindByEmailAsync(dtoUser.Email); if (user == null) { ModelState.AddModelError(string.Empty, "Invalid login"); return(BadRequest(ModelState)); } var passwordSignInResult = await _signInManager.CheckPasswordSignInAsync(user, dtoUser.Password, false); if (passwordSignInResult.Succeeded) { return(Ok(GenerateToken(user))); } return(BadRequest("Invalid login")); }
public async Task <ActionResult> SecondLogin(DTOLoginUser userModel) { try { if (ModelState.IsValid) { if (_userRepo.GetUserByEmail(userModel.Email) == null) { throw new Exception(); } string typedPassword = userModel.Password; var user = _userRepo.GetUserByEmail(userModel.Email); if (HashPassword(typedPassword) == user.Password) { var claims = new List <Claim> { new Claim(ClaimTypes.Name, userModel.Email) }; var claimsIdentity = new ClaimsIdentity(claims, "Login"); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity)); return(Redirect("/User/EditProfile")); } else { throw new Exception(); } } } catch (Exception ex) { _logger.LogError("CONTROLLER USER -- Login() -- Error : ", ex); } return(View("Error", new ErrorViewModel())); }