X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Fclub%2Fwpia%2Fgigi%2FdbObjects%2FUser.java;h=714bfc3a9122b95bcb1fad5bbd51a2f0ebb0678b;hb=46eea3386b6003bd243061cb215196f0f9240c90;hp=1c6b39b377e7b67d31cbca4c6d9fd4633225e875;hpb=bac148715f26957637ce90d78a5ebd783da866c5;p=gigi.git diff --git a/src/club/wpia/gigi/dbObjects/User.java b/src/club/wpia/gigi/dbObjects/User.java index 1c6b39b3..714bfc3a 100644 --- a/src/club/wpia/gigi/dbObjects/User.java +++ b/src/club/wpia/gigi/dbObjects/User.java @@ -209,7 +209,7 @@ public class User extends CertificateOwner { setPassword(newPass); } - private void setPassword(String newPass) throws GigiApiException { + public void setPassword(String newPass) throws GigiApiException { Name[] names = getNames(); TreeSet nameParts = new TreeSet<>(); for (int i = 0; i < names.length; i++) { @@ -242,6 +242,10 @@ public class User extends CertificateOwner { return false; } + if ( !Contract.hasSignedContract(this, Contract.ContractType.RA_AGENT_CONTRACT)) { + return false; + } + return hasPassedCATS(); } @@ -572,7 +576,7 @@ public class User extends CertificateOwner { } public String[] getTrainings() { - try (GigiPreparedStatement prep = new GigiPreparedStatement("SELECT `pass_date`, `type_text`, `language`, `version` FROM `cats_passed` LEFT JOIN `cats_type` ON `cats_type`.`id`=`cats_passed`.`variant_id` WHERE `user_id`=? ORDER BY `pass_date` ASC")) { + try (GigiPreparedStatement prep = new GigiPreparedStatement("SELECT `pass_date`, `type_text`, `language`, `version` FROM `cats_passed` LEFT JOIN `cats_type` ON `cats_type`.`id`=`cats_passed`.`variant_id` WHERE `user_id`=? ORDER BY `pass_date` DESC")) { prep.setInt(1, getId()); GigiResultSet res = prep.executeQuery(); List entries = new LinkedList(); @@ -680,4 +684,33 @@ 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()); + } + + public void writeUserLog(User actor, String type) throws GigiApiException { + try (GigiPreparedStatement prep = new GigiPreparedStatement("INSERT INTO `adminLog` SET uid=?, admin=?, type=?")) { + prep.setInt(1, actor.getId()); + prep.setInt(2, getId()); + prep.setString(3, type); + prep.executeUpdate(); + } + } }