public void Recovery_RecoveryIsNull_ViewResult() { // Arrange var data = new List <Recovery>() { new Recovery { Id = 1, Key = "TestKey", User = null } }.AsQueryable(); var mockSet = MockHelper.MockDbSet(data); var mockContext = new Mock <Context>(); mockContext.SetupGet(c => c.Recoveries).Returns(mockSet.Object); var mockUserHelper = new Mock <IUserHelper>(); var controller = new AccountController(mockContext.Object, mockUserHelper.Object); var vm = new RecoveryVM { Key = "TestKey2" }; // Act var result = controller.Recovery(vm) as ViewResult; // Assert Assert.IsNotNull(result); }
public ActionResult RecoveryNew(RecoveryVM vm) { if (!string.IsNullOrWhiteSpace(vm.Email)) { User user = Context.Users.GetByMail(vm.Email); if (user != null) { _resetPassword(vm.Email); } } return(View("Recovery", new RecoveryVM { Status = RecoveryStatus.Sent })); }
public void Recovery_KeyIsNull_ViewResult() { // Arrange var mockContext = new Mock <Context>(); var mockUserHelper = new Mock <IUserHelper>(); var controller = new AccountController(mockContext.Object, mockUserHelper.Object); var vm = new RecoveryVM { Key = null }; // Act var result = controller.Recovery(vm) as ViewResult; // Assert Assert.IsNotNull(result); }
public void RecoveryNew_EmailIsNull_ViewResult() { // Arrange var vm = new RecoveryVM { Email = null }; var mockContext = new Mock <Context>(); var mockUserHelper = new Mock <IUserHelper>(); var mockSession = new Mock <ISessionHelper>(); var controller = new AccountController(mockContext.Object, mockUserHelper.Object, mockSession.Object); // Act var result = controller.RecoveryNew(vm) as ViewResult; // Assert Assert.IsNotNull(result); }
// GET: Loans/Recover/5 public async Task <IActionResult> Recover(string id) { if (id == null) { return(NotFound()); } RecoveryVM recoveryVM = new RecoveryVM { loan = await _context.Loans.FindAsync(id) }; if (recoveryVM.loan == null) { return(NotFound()); } recoveryVM.PreviousUrl = Request.Headers["Referer"].ToString(); return(View(recoveryVM)); }
public void RecoveryForm_Succesfull_ViewResultWithFailedModel() { // Arrange var data = new List <Recovery>() { new Recovery { Id = 1, Key = "TestKey", User = new User { Password = Hashing.Hash("Test") } } }.AsQueryable(); var mockSet = MockHelper.MockDbSet(data); var mockContext = new Mock <Context>(); mockContext.SetupGet(c => c.Recoveries).Returns(mockSet.Object); var vm = new RecoveryVM { Password = "******", PasswordCheck = "Test", Key = "TestKey" }; var mockSession = new Mock <ISessionHelper>(); mockSession.Setup(s => s.GetSessionItem("recoveryKey")).Returns("TestKey"); var mockUserHelper = new Mock <IUserHelper>(); var controller = new AccountController(mockContext.Object, mockUserHelper.Object, mockSession.Object); // Act var result = controller.RecoveryForm(vm) as ViewResult; var resultModel = result.Model as RecoveryVM; // Assert Assert.IsNotNull(result); Assert.AreEqual(resultModel.Status, RecoveryStatus.Changed); }
public void Recovery_SuccessFullRecovery_ViewResult() { // Arrange var data = new List <Recovery>() { new Recovery { Id = 1, Key = "TestKey", User = new User { Id = 1, UserName = "******" } } }.AsQueryable(); var vm = new RecoveryVM { Key = "TestKey" }; var mockSet = MockHelper.MockDbSet(data); var mockContext = new Mock <Context>(); mockContext.SetupGet(c => c.Recoveries).Returns(mockSet.Object); var mockSession = new Mock <ISessionHelper>(); mockSession.Setup(s => s.SetSessionItem("recoveryKey", vm.Key)); var mockUserHelper = new Mock <IUserHelper>(); var controller = new AccountController(mockContext.Object, mockUserHelper.Object, mockSession.Object); // Act var result = controller.Recovery(vm) as ViewResult; // Assert Assert.IsNotNull(result); }
public void RecoveryForm_KeyIsNull_ViewResult() { // Arrange var vm = new RecoveryVM { Password = "******", PasswordCheck = "Test" }; var mockSession = new Mock <ISessionHelper>(); mockSession.Setup(s => s.GetSessionItem("recoveryKey")).Returns(null); var mockContext = new Mock <Context>(); var mockUserHelper = new Mock <IUserHelper>(); var controller = new AccountController(mockContext.Object, mockUserHelper.Object, mockSession.Object); // Act var result = controller.RecoveryForm(vm) as ViewResult; var resultModel = result.Model as RecoveryVM; // Assert Assert.IsNotNull(result); Assert.AreEqual(resultModel.Status, RecoveryStatus.Failed); }
public ActionResult RecoveryForm(RecoveryVM vm) { if (vm.Password == vm.PasswordCheck && vm.Key != null) { Recovery recovery = Context.Recoveries.GetByKey(vm.Key); if (recovery != null) { User user = recovery.User; if (user != null) { user.Password = Hashing.Hash(vm.Password); Context.Recoveries.Remove(recovery); Context.SaveChanges(); return(View("Recovery", new RecoveryVM { Status = RecoveryStatus.Changed })); } } } return(View("Recovery", new RecoveryVM { Status = RecoveryStatus.Failed })); }
/// <summary> /// Check for a key in the params. If it exists in the database redirect to the reset password form. /// </summary> /// <param name="key"></param> /// <returns></returns> public ActionResult Recovery(RecoveryVM vm) { if (vm.Key != null) { Recovery recovery = Context.Recoveries.GetByKey(vm.Key); if (recovery != null) { User user = recovery.User; if (user != null) { return(View("Recovery", new RecoveryVM { Key = vm.Key })); } } else { return(View("Recovery", new RecoveryVM { Status = RecoveryStatus.Invalid })); } } return(View()); }
public async Task <KeyValuePair <string, string> > SetTempPasswordAndRecoveryToken(RecoveryVM recoveree) { _logger.LogInformation("AuthenticationService.SetTempPasswordAndRecoveryToken - Service starts."); var dbHidrogenian = !recoveree.Reattempt ? await _dbContext.Hidrogenian.FirstOrDefaultAsync( h => h.Email == recoveree.Email && h.EmailConfirmed && h.DeactivatedOn == null) : await _dbContext.Hidrogenian.FirstOrDefaultAsync( h => h.Email == recoveree.Email && !h.EmailConfirmed && h.DeactivatedOn == null && h.RecoveryToken != null && h.TokenSetOn != null); if (dbHidrogenian == null) { return(new KeyValuePair <string, string>(null, null)); } var tempPassword = HelperProvider.GenerateRandomString(15); var hashedResult = GenerateHashedPasswordAndSalt(tempPassword); dbHidrogenian.PasswordHash = hashedResult.Key; dbHidrogenian.PasswordSalt = hashedResult.Value; var recoveryToken = GenerateRandomToken(); dbHidrogenian.RecoveryToken = recoveryToken; dbHidrogenian.TokenSetOn = DateTime.UtcNow; dbHidrogenian.EmailConfirmed = false; _dbContext.Hidrogenian.Update(dbHidrogenian); try { await _dbContext.SaveChangesAsync(); } catch (Exception e) { _logger.LogError("AuthenticationService.SetTempPasswordAndRecoveryToken - Error: " + e); return(new KeyValuePair <string, string>(string.Empty, null)); } return(new KeyValuePair <string, string>(tempPassword, recoveryToken)); }