X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Futil%2FNotary.java;h=e6288988d5952a4049da2bc0909e6a6a2efbb9bb;hp=7cb15aad203dc14619143dfd442b238221c28b62;hb=a1d3a796a20e7e2f11364b143ec639d5defa8b5f;hpb=23054bdbb774546f53385a54a0b161b20c0fccb9 diff --git a/src/org/cacert/gigi/util/Notary.java b/src/org/cacert/gigi/util/Notary.java index 7cb15aad..e6288988 100644 --- a/src/org/cacert/gigi/util/Notary.java +++ b/src/org/cacert/gigi/util/Notary.java @@ -13,9 +13,12 @@ import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.Name; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.output.DateSelector; +import org.cacert.gigi.output.template.SprintfCommand; public class Notary { + public final static int LIMIT_DAYS_VERIFICATION = 90; // conf.getProperty("limit_days_verification"); + public static void writeUserAgreement(User member, String document, String method, String comment, boolean active, int secmemid) { try (GigiPreparedStatement q = new GigiPreparedStatement("INSERT INTO `user_agreements` SET `memid`=?, `secmemid`=?," + " `document`=?,`date`=NOW(), `active`=?,`method`=?,`comment`=?")) { q.setInt(1, member.getId()); @@ -32,13 +35,15 @@ public class Notary { if (assurer.getId() == target.getId()) { throw new GigiApiException("You cannot assure yourself."); } - try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT 1 FROM `notary` where `to`=? and `from`=? AND `deleted` IS NULL")) { + try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT 1 FROM `notary` where `to`=? and `from`=? and `method` = ? ::`notaryType` AND `deleted` IS NULL AND `when` > (now() - interval '1 days' * ?)")) { ps.setInt(1, target.getId()); ps.setInt(2, assurer.getId()); + ps.setString(3, AssuranceType.FACE_TO_FACE.getDescription()); + ps.setInt(4, LIMIT_DAYS_VERIFICATION); GigiResultSet rs = ps.executeQuery(); if (rs.next()) { rs.close(); - throw new GigiApiException("You have already assured this member."); + throw new GigiApiException(SprintfCommand.createSimple("You have already verified this applicant within the last {0} days.", LIMIT_DAYS_VERIFICATION)); } } if ( !assurer.canAssure()) { @@ -72,7 +77,7 @@ public class Notary { * @throws GigiApiException * if the assurance fails (for various reasons) */ - public synchronized static void assure(User assurer, User assuree, Name assureeName, Date dob, int awarded, String location, String date, AssuranceType type) throws GigiApiException { + public synchronized static void assure(User assurer, User assuree, Name assureeName, DayDate dob, int awarded, String location, String date, AssuranceType type) throws GigiApiException { may(assurer, assuree, AssuranceType.FACE_TO_FACE); GigiApiException gae = new GigiApiException(); if ( !gae.isEmpty()) { @@ -135,7 +140,7 @@ public class Notary { } else if (type == AssuranceType.TTP_ASSISTED) { assureTTP(assurer, assuree, awarded, location, date); } else { - throw new GigiApiException("Unknown Assurance type: " + type); + throw new GigiApiException(SprintfCommand.createSimple("Unknown Assurance type: {0}", type.toString())); } assurer.invalidateMadeAssurances(); assuree.invalidateReceivedAssurances(); @@ -169,29 +174,29 @@ public class Notary { public static void may(User assurer, User assuree, AssuranceType t) throws GigiApiException { if (assuree.isInGroup(ASSUREE_BLOCKED)) { - throw new GigiApiException("The assuree is blocked."); + throw new GigiApiException("The applicant is blocked."); } if (assurer.isInGroup(ASSURER_BLOCKED)) { - throw new GigiApiException("The assurer is blocked."); + throw new GigiApiException("The RA Agent is blocked."); } if (t == AssuranceType.NUCLEUS) { if ( !assurer.isInGroup(Group.NUCLEUS_ASSURER)) { - throw new GigiApiException("Assurer needs to be Nucleus Assurer."); + throw new GigiApiException("RA Agent needs to be Nucleus RA Agent."); } return; } else if (t == AssuranceType.TTP_ASSISTED) { if ( !assurer.isInGroup(Group.TTP_ASSURER)) { - throw new GigiApiException("Assurer needs to be TTP Assurer."); + throw new GigiApiException("RA Agent needs to be TTP RA Agent."); } if ( !assuree.isInGroup(Group.TTP_APPLICANT)) { - throw new GigiApiException("Assuree needs to be TTP Applicant."); + throw new GigiApiException("Applicant needs to be TTP Applicant."); } return; } else if (t == AssuranceType.FACE_TO_FACE) { return; } - throw new GigiApiException("Assurance type not possible."); + throw new GigiApiException("Verification type not possible."); } private static void assureNucleus(User assurer, User assuree, int awarded, String location, String date) throws GigiApiException {