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);
        }
Esempio n. 2
0
 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);
        }
Esempio n. 5
0
        // 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);
        }
Esempio n. 9
0
 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
     }));
 }
Esempio n. 10
0
 /// <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());
 }
Esempio n. 11
0
        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));
        }