From a10b57f7b91204aa32ecd8070fb9b1f5efb88fed Mon Sep 17 00:00:00 2001 From: INOPIAE Date: Tue, 16 Jul 2019 12:39:51 +0200 Subject: [PATCH] add: implement to check if user has valid challenges for roles This is just the basic work for upcoming patches to enforce the requirement to have a challenge passed within in the given time for valid tests for certain areas. see issue #150 Change-Id: Ie53634cd2c1d74829c811cd4d35f584ddb0eb307 --- src/club/wpia/gigi/dbObjects/User.java | 20 ++++++++++ tests/club/wpia/gigi/dbObjects/TestUser.java | 41 ++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/src/club/wpia/gigi/dbObjects/User.java b/src/club/wpia/gigi/dbObjects/User.java index 10586d71..3b4f4671 100644 --- a/src/club/wpia/gigi/dbObjects/User.java +++ b/src/club/wpia/gigi/dbObjects/User.java @@ -680,4 +680,24 @@ public class User extends CertificateOwner { update.executeUpdate(); } } + + public boolean hasValidRAChallenge() { + return CATS.isInCatsLimit(getId(), CATSType.AGENT_CHALLENGE.getId()); + } + + public boolean hasValidSupportChallenge() { + return CATS.isInCatsLimit(getId(), CATSType.SUPPORT_DP_CHALLENGE_NAME.getId()); + } + + public boolean hasValidOrgAdminChallenge() { + return CATS.isInCatsLimit(getId(), CATSType.ORG_ADMIN_DP_CHALLENGE_NAME.getId()); + } + + public boolean hasValidOrgAgentChallenge() { + return CATS.isInCatsLimit(getId(), CATSType.ORG_AGENT_CHALLENGE.getId()); + } + + public boolean hasValidTTPAgentChallenge() { + return CATS.isInCatsLimit(getId(), CATSType.TTP_AGENT_CHALLENGE.getId()); + } } diff --git a/tests/club/wpia/gigi/dbObjects/TestUser.java b/tests/club/wpia/gigi/dbObjects/TestUser.java index b25970b6..ed3f1c95 100644 --- a/tests/club/wpia/gigi/dbObjects/TestUser.java +++ b/tests/club/wpia/gigi/dbObjects/TestUser.java @@ -2,9 +2,14 @@ package club.wpia.gigi.dbObjects; import static org.junit.Assert.*; +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.sql.Date; + import org.junit.Test; import club.wpia.gigi.GigiApiException; +import club.wpia.gigi.dbObjects.CATS.CATSType; import club.wpia.gigi.dbObjects.NamePart.NamePartType; import club.wpia.gigi.testUtils.ClientBusinessTest; @@ -64,4 +69,40 @@ public class TestUser extends ClientBusinessTest { assertEquals("HPH", u0.getInitials()); } + @Test + public void testValidCATS() throws IOException, GeneralSecurityException { + Date min11month = new Date(System.currentTimeMillis() - 24L * 60 * 60 * 11 * 31 * 1000L); + Date min12month = new Date(System.currentTimeMillis() - 24L * 60 * 60 * 12 * 31 * 1000L); + + assertFalse(u.hasValidRAChallenge()); + CATS.enterResult(u, CATSType.AGENT_CHALLENGE, min12month, "en_US", "1"); + assertFalse(u.hasValidRAChallenge()); + CATS.enterResult(u, CATSType.AGENT_CHALLENGE, min11month, "en_US", "1"); + assertTrue(u.hasValidRAChallenge()); + + assertFalse(u.hasValidSupportChallenge()); + CATS.enterResult(u, CATSType.SUPPORT_DP_CHALLENGE_NAME, min12month, "en_US", "1"); + assertFalse(u.hasValidSupportChallenge()); + CATS.enterResult(u, CATSType.SUPPORT_DP_CHALLENGE_NAME, min11month, "en_US", "1"); + assertTrue(u.hasValidSupportChallenge()); + + assertFalse(u.hasValidOrgAdminChallenge()); + CATS.enterResult(u, CATSType.ORG_ADMIN_DP_CHALLENGE_NAME, min12month, "en_US", "1"); + assertFalse(u.hasValidOrgAdminChallenge()); + CATS.enterResult(u, CATSType.ORG_ADMIN_DP_CHALLENGE_NAME, min11month, "en_US", "1"); + assertTrue(u.hasValidOrgAdminChallenge()); + + assertFalse(u.hasValidOrgAgentChallenge()); + CATS.enterResult(u, CATSType.ORG_AGENT_CHALLENGE, min12month, "en_US", "1"); + assertFalse(u.hasValidOrgAgentChallenge()); + CATS.enterResult(u, CATSType.ORG_AGENT_CHALLENGE, min11month, "en_US", "1"); + assertTrue(u.hasValidOrgAgentChallenge()); + + assertFalse(u.hasValidTTPAgentChallenge()); + CATS.enterResult(u, CATSType.TTP_AGENT_CHALLENGE, min12month, "en_US", "1"); + assertFalse(u.hasValidTTPAgentChallenge()); + CATS.enterResult(u, CATSType.TTP_AGENT_CHALLENGE, min11month, "en_US", "1"); + assertTrue(u.hasValidTTPAgentChallenge()); + } + } -- 2.39.2