public static bool PasswordExpirationDate(PasswordExpirationDateConfiguration config, DateTime lastPasswordChange) { switch (config.PasswordExpiration) { case PasswordExpiration.Year: return(lastPasswordChange.AddMonths(12) >= DateTime.UtcNow); case PasswordExpiration.HalfYear: return(lastPasswordChange.AddMonths(6) >= DateTime.UtcNow); case PasswordExpiration.Month: return(lastPasswordChange.AddMonths(1) >= DateTime.UtcNow); case PasswordExpiration.Custom: if (!config.CustomValue.HasValue) { throw new Exception("Custom password expiration date not set."); } return(lastPasswordChange.AddDays(config.CustomValue.Value) >= DateTime.UtcNow); default: throw new Exception("Bad policy"); } }
public void PasswordExpirationDateCheckShouldReturnFalseBecauseOfDateExpired() { // arrange var configuration = new PasswordExpirationDateConfiguration { PasswordExpiration = PasswordExpiration.Month }; // act var checkResult = Check.PasswordExpirationDate(configuration, DateTime.Now.AddMonths(-2)); // assert Assert.False(checkResult); }
public IActionResult SavePasswordExpirationPolicy(Policy policy, int projectId, PasswordExpirationDateConfiguration policySettings) { try { savePolicyToProjectFactory.Create().Invoke(projectId, policy, policySettings); Alert(AlertType.Success, "Policy added correctly."); return(RedirectToAction("GetById", "Projects", new { id = projectId })); } catch (Exception ex) { Alert(AlertType.Warning, ex.Message); return(View("ErrorPage")); } }
public void PasswordExpirationDateCheckShouldReturnTrue() { // arrange var configuration = new PasswordExpirationDateConfiguration { PasswordExpiration = PasswordExpiration.Custom, CustomValue = 42 }; // act var checkResult = Check.PasswordExpirationDate(configuration, DateTime.UtcNow.AddDays(-41)); // assert Assert.True(checkResult); }