X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FEmailAddress.java;h=b945f9eecc23028575b8d4368738ecd5d652c42e;hb=8d98e8c550a5fc426d7efbd57436dcb61bd41243;hp=f398087d16bf067213afc0b2507557de10cfc658;hpb=701ba7f582c84412cabd47aeb9d785b93a892c07;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/EmailAddress.java b/src/org/cacert/gigi/dbObjects/EmailAddress.java index f398087d..b945f9ee 100644 --- a/src/org/cacert/gigi/dbObjects/EmailAddress.java +++ b/src/org/cacert/gigi/dbObjects/EmailAddress.java @@ -45,16 +45,22 @@ public class EmailAddress implements IdCachable { this.hash = RandomToken.generateToken(16); } - public void insert(Language l) { + public void insert(Language l) throws GigiApiException { if (id != 0) { throw new IllegalStateException("already inserted."); } try { + GigiPreparedStatement psCheck = DatabaseConnection.getInstance().prepare("SELECT 1 FROM `emails` WHERE email=? AND deleted is NULL"); GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO `emails` SET memid=?, hash=?, email=?"); ps.setInt(1, owner.getId()); ps.setString(2, hash); ps.setString(3, address); + psCheck.setString(1, address); synchronized (EmailAddress.class) { + GigiResultSet res = psCheck.executeQuery(); + if (res.next()) { + throw new GigiApiException("The email is currently valid"); + } ps.execute(); id = ps.lastInsertId(); myCache.put(this);