]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/EmailAddress.java
Merge remote-tracking branch 'origin/emailMgmt'
[gigi.git] / src / org / cacert / gigi / EmailAddress.java
index 3f4211a51eb95df4b0965a665e4fbdfa197c506c..a2a7e5801d8566ef88b5c7fd59840650a77204d1 100644 (file)
@@ -7,6 +7,7 @@ import java.sql.SQLException;
 
 import org.cacert.gigi.database.DatabaseConnection;
 import org.cacert.gigi.email.EmailProvider;
+import org.cacert.gigi.util.RandomToken;
 import org.cacert.gigi.util.ServerConstants;
 
 public class EmailAddress {
@@ -31,10 +32,13 @@ public class EmailAddress {
                rs.close();
        }
 
-       public EmailAddress(String address, User owner, String hash) {
+       public EmailAddress(String address, User owner) {
+               if (!EmailProvider.MAIL.matcher(address).matches()) {
+                       throw new IllegalArgumentException("Invalid email.");
+               }
                this.address = address;
                this.owner = owner;
-               this.hash = hash;
+               this.hash = RandomToken.generateToken(16);
        }
 
        public void insert(Language l) {
@@ -95,6 +99,7 @@ public class EmailAddress {
                                ps2.setInt(1, owner.getId());
                                ps2.setString(2, address);
                                ps2.execute();
+                               this.hash = "";
                        } catch (SQLException e) {
                                throw new GigiApiException(e);
                        }
@@ -113,4 +118,8 @@ public class EmailAddress {
                        throw new IllegalArgumentException(e);
                }
        }
+
+       public boolean isVerified() {
+               return hash.isEmpty();
+       }
 }