X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FEmailAddress.java;h=756785393a0acbccb64413baf0ca999b584ffca2;hb=bead06ac89a5fbe282dab187c5d1babbb7dcdf66;hp=964d1b68ec8dda6cb2afb7685d43c46415f303d7;hpb=78aea4e2c6a8e99ba546c4189d7071d57c1aaf3b;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/EmailAddress.java b/src/org/cacert/gigi/dbObjects/EmailAddress.java index 964d1b68..75678539 100644 --- a/src/org/cacert/gigi/dbObjects/EmailAddress.java +++ b/src/org/cacert/gigi/dbObjects/EmailAddress.java @@ -2,6 +2,7 @@ package org.cacert.gigi.dbObjects; import java.io.IOException; import java.util.Date; +import java.util.LinkedList; import java.util.Locale; import org.cacert.gigi.GigiApiException; @@ -39,7 +40,7 @@ public class EmailAddress implements IdCachable, Verifyable { public EmailAddress(User owner, String address, Locale mailLocale) throws GigiApiException { address = address.toLowerCase(); - if ( !EmailProvider.MAIL.matcher(address).matches()) { + if ( !EmailProvider.isValidMailAddress(address)) { throw new IllegalArgumentException("Invalid email."); } this.address = address; @@ -149,4 +150,20 @@ public class EmailAddress implements IdCachable, Verifyable { } return em; } + + public User getOwner() { + return owner; + } + + public static EmailAddress[] findByAllEmail(String mail) { + LinkedList results = new LinkedList(); + try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT `emails`.`id` FROM `emails` INNER JOIN `users` ON `users`.`id` = `emails`.`memid` INNER JOIN `certOwners` ON `certOwners`.`id` = `users`.`id` WHERE `emails`.`email` LIKE ? AND `emails`.`deleted` IS NULL AND `certOwners`.`deleted` IS NULL ORDER BY `users`.`id`, `emails`.`email` LIMIT 100")) { + ps.setString(1, mail); + GigiResultSet rs = ps.executeQuery(); + while (rs.next()) { + results.add(EmailAddress.getById(rs.getInt(1))); + } + return results.toArray(new EmailAddress[results.size()]); + } + } }