X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2FdbObjects%2FEmailAddress.java;h=935877a6d7a594e89955b0c46458130f9a782863;hb=b373422ceb172e10e2ff32c09141158529b3f48b;hp=7d4c984e8e8233892e537799ce8b3ec4b174e4d9;hpb=be0c267ced95d9e08e179ad222439198b0176ac6;p=gigi.git diff --git a/src/club/wpia/gigi/dbObjects/EmailAddress.java b/src/club/wpia/gigi/dbObjects/EmailAddress.java index 7d4c984e..935877a6 100644 --- a/src/club/wpia/gigi/dbObjects/EmailAddress.java +++ b/src/club/wpia/gigi/dbObjects/EmailAddress.java @@ -62,6 +62,11 @@ public class EmailAddress implements IdCachable, Verifyable { throw new GigiApiException("The email address is already known to the system."); } } + + if (isOrgMailAddress()) { + throw new GigiApiException("The entered email address belongs to a registered organisation. Please contact the organisation to issue certificates for this email address."); + } + try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO `emails` SET memid=?, email=?")) { ps.setInt(1, owner.getId()); ps.setString(2, address); @@ -111,7 +116,7 @@ public class EmailAddress implements IdCachable, Verifyable { stmt.setInt(2, owner.getId()); stmt.setString(3, hash); if ( !stmt.executeMaybeUpdate()) { - throw new IllegalArgumentException("Given token could not be found to complete the verification process (Domain Ping)."); + throw new IllegalArgumentException("Given token could not be found to complete the verification process (Email Ping)."); } } // Verify user with that primary email @@ -181,4 +186,14 @@ public class EmailAddress implements IdCachable, Verifyable { return results.toArray(new EmailAddress[results.size()]); } } + + public boolean isOrgMailAddress() { + String[] parts = address.split("@"); + + try (GigiPreparedStatement statmt = new GigiPreparedStatement("SELECT 1 FROM `domains` AS d, `organisations` AS o WHERE d.`domain` = ? AND d.`deleted` IS NULL AND d.`memid` = o.`id`")) { + statmt.setString(1, parts[parts.length - 1]); + GigiResultSet e = statmt.executeQuery(); + return e.next(); + } + } }