X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FUser.java;h=42457db543a625540be62b5deff109321fd72778;hb=6f951295dfd62c5fa1ddb0977febeb58728bec50;hp=ccbe53fb922a1a1103b112124be3a82ae85fced3;hpb=ec24cf6925bb3729a644580ad4a9375d05883c62;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/User.java b/src/org/cacert/gigi/dbObjects/User.java index ccbe53fb..42457db5 100644 --- a/src/org/cacert/gigi/dbObjects/User.java +++ b/src/org/cacert/gigi/dbObjects/User.java @@ -64,34 +64,10 @@ public class User extends CertificateOwner { public User() {} - public String getFName() { - return name.fname; - } - - public String getLName() { - return name.lname; - } - - public String getMName() { - return name.mname; - } - public Name getName() { return name; } - public void setMName(String mname) { - this.name.mname = mname; - } - - public String getSuffix() { - return name.suffix; - } - - public void setSuffix(String suffix) { - this.name.suffix = suffix; - } - public Date getDoB() { return dob; } @@ -108,23 +84,15 @@ public class User extends CertificateOwner { this.email = email; } - public void setFName(String fname) { - this.name.fname = fname; - } - - public void setLName(String lname) { - this.name.lname = lname; - } - public void insert(String password) { int id = super.insert(); GigiPreparedStatement query = DatabaseConnection.getInstance().prepare("insert into `users` set `email`=?, `password`=?, " + "`fname`=?, `mname`=?, `lname`=?, " + "`suffix`=?, `dob`=?, `language`=?, id=?"); query.setString(1, email); query.setString(2, PasswordHash.hash(password)); - query.setString(3, name.fname); - query.setString(4, name.mname); - query.setString(5, name.lname); - query.setString(6, name.suffix); + query.setString(3, name.getFname()); + query.setString(4, name.getMname()); + query.setString(5, name.getLname()); + query.setString(6, name.getSuffix()); query.setDate(7, new java.sql.Date(dob.getTime())); query.setString(8, locale.toString()); query.setInt(9, id); @@ -345,18 +313,21 @@ public class User extends CertificateOwner { 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(4, getSuffix()); - update.setDate(5, getDoB()); - update.setInt(6, getId()); - update.executeUpdate(); + rawUpdateUserData(); } } + protected void rawUpdateUserData() { + GigiPreparedStatement update = DatabaseConnection.getInstance().prepare("UPDATE users SET fname=?, lname=?, mname=?, suffix=?, dob=? WHERE id=?"); + update.setString(1, name.getFname()); + update.setString(2, name.getLname()); + update.setString(3, name.getMname()); + update.setString(4, name.getSuffix()); + update.setDate(5, getDoB()); + update.setInt(6, getId()); + update.executeUpdate(); + } + public Locale getPreferredLocale() { return locale; } @@ -470,21 +441,30 @@ public class User extends CertificateOwner { } } - public boolean canIssue(CertificateProfile p) { - // FIXME: Use descriptive constants - switch (p.getCAId()) { - case 0: - return true; - case 1: - return getAssurancePoints() > 50; - case 2: - return getAssurancePoints() > 50 && isInGroup(Group.getByString("codesigning")); - case 3: - case 4: - return getOrganisations().size() > 0; - default: - return false; + public EmailAddress[] getEmails() { + GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT id FROM emails WHERE memid=? AND deleted is NULL"); + ps.setInt(1, getId()); + + try (GigiResultSet rs = ps.executeQuery()) { + LinkedList data = new LinkedList(); + + while (rs.next()) { + data.add(EmailAddress.getById(rs.getInt(1))); + } + + return data.toArray(new EmailAddress[0]); + } + } + + @Override + public boolean isValidEmail(String email) { + for (EmailAddress em : getEmails()) { + if (em.getAddress().equals(email)) { + return true; + } } + + return false; } }