X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FUser.java;h=9b2cf515c5c2b200e8520a8b2c11107be1f839fb;hp=0b77b97d6e53d76be0cdc2759eff6ae73ae45fe7;hb=4b91927aa8d90226414872ce5b3006d0e0f5d273;hpb=940c5fc153cd6023221220ad0f4f6c948f649d32 diff --git a/src/org/cacert/gigi/dbObjects/User.java b/src/org/cacert/gigi/dbObjects/User.java index 0b77b97d..9b2cf515 100644 --- a/src/org/cacert/gigi/dbObjects/User.java +++ b/src/org/cacert/gigi/dbObjects/User.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Set; @@ -58,15 +59,15 @@ public class User extends CertificateOwner { public User() {} - public String getFname() { + public String getFName() { return name.fname; } - public String getLname() { + public String getLName() { return name.lname; } - public String getMname() { + public String getMName() { return name.mname; } @@ -74,7 +75,7 @@ public class User extends CertificateOwner { return name; } - public void setMname(String mname) { + public void setMName(String mname) { this.name.mname = mname; } @@ -86,11 +87,11 @@ public class User extends CertificateOwner { this.name.suffix = suffix; } - public Date getDob() { + public Date getDoB() { return dob; } - public void setDob(Date dob) { + public void setDoB(Date dob) { this.dob = dob; } @@ -102,11 +103,11 @@ public class User extends CertificateOwner { this.email = email; } - public void setFname(String fname) { + public void setFName(String fname) { this.name.fname = fname; } - public void setLname(String lname) { + public void setLName(String lname) { this.name.lname = lname; } @@ -140,9 +141,11 @@ public class User extends CertificateOwner { ps = DatabaseConnection.getInstance().prepare("UPDATE users SET `password`=? WHERE id=?"); ps.setString(1, PasswordHash.hash(newPass)); ps.setInt(2, getId()); - if (ps.executeUpdate() != 1) { - throw new GigiApiException("Password update failed."); - } + ps.executeUpdate(); + } + + public void setName(Name name) { + this.name = name; } public boolean canAssure() { @@ -192,20 +195,6 @@ public class User extends CertificateOwner { return points; } - @Override - public boolean equals(Object obj) { - if ( !(obj instanceof User)) { - return false; - } - User s = (User) obj; - return name.equals(s.name) && email.equals(s.email) && dob.toString().equals(s.dob.toString()); // This - // is - // due - // to - // day - // cutoff - } - /** * Gets the maximum allowed points NOW. Note that an assurance needs to * re-check PoJam as it has taken place in the past. @@ -334,15 +323,17 @@ public class User extends CertificateOwner { public void updateUserData() throws GigiApiException { synchronized (Notary.class) { + // FIXME: No assurance, not no points. if (getAssurancePoints() != 0) { throw new GigiApiException("No change after assurance allowed."); } + GigiPreparedStatement update = DatabaseConnection.getInstance().prepare("UPDATE users SET fname=?, lname=?, mname=?, suffix=?, dob=? WHERE id=?"); - update.setString(1, getFname()); - update.setString(2, getLname()); - update.setString(3, getMname()); + update.setString(1, getFName()); + update.setString(2, getLName()); + update.setString(3, getMName()); update.setString(4, getSuffix()); - update.setDate(5, getDob()); + update.setDate(5, getDoB()); update.setInt(6, getId()); update.executeUpdate(); } @@ -443,6 +434,17 @@ public class User extends CertificateOwner { return User.getById(rs.getInt(1)); } + public static User[] findByEmail(String mail) { + LinkedList results = new LinkedList(); + GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT users.id FROM users inner join certOwners on certOwners.id=users.id WHERE users.email LIKE ? AND deleted is null GROUP BY users.id ASC LIMIT 100"); + ps.setString(1, mail); + GigiResultSet rs = ps.executeQuery(); + while (rs.next()) { + results.add(User.getById(rs.getInt(1))); + } + return results.toArray(new User[results.size()]); + } + public boolean canIssue(CertificateProfile p) { switch (p.getCAId()) { case 0: @@ -453,9 +455,10 @@ public class User extends CertificateOwner { return getAssurancePoints() > 50 && isInGroup(Group.getByString("codesigning")); case 3: case 4: - return false; // has an orga + return getOrganisations().size() > 0; default: return false; } } + }