X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FUser.java;h=8f7c3f148cc4cdc1a18b5e5b25a6aa7e2fb293c2;hb=f1abe1d0fa681917a0a87ce35359d1e204e69867;hp=70fd821442ccbce19454cd91f888b1a07dc15d80;hpb=07f74d10bddc819f4524e2e0c1a2815eb4e7ec79;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/User.java b/src/org/cacert/gigi/dbObjects/User.java index 70fd8214..8f7c3f14 100644 --- a/src/org/cacert/gigi/dbObjects/User.java +++ b/src/org/cacert/gigi/dbObjects/User.java @@ -1,8 +1,6 @@ package org.cacert.gigi.dbObjects; -import java.sql.Date; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collections; import java.util.HashSet; import java.util.LinkedList; @@ -15,6 +13,8 @@ import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.database.GigiResultSet; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.DateSelector; +import org.cacert.gigi.util.CalendarUtil; +import org.cacert.gigi.util.DayDate; import org.cacert.gigi.util.Notary; import org.cacert.gigi.util.PasswordHash; import org.cacert.gigi.util.PasswordStrengthChecker; @@ -27,7 +27,7 @@ public class User extends CertificateOwner { private Name name = new Name(null, null, null, null); - private Date dob; + private DayDate dob; private String email; @@ -39,6 +39,8 @@ public class User extends CertificateOwner { private final Set groups = new HashSet<>(); + public static final int MINIMUM_AGE = 16; + protected User(GigiResultSet rs) { super(rs.getInt("id")); updateName(rs); @@ -46,7 +48,7 @@ public class User extends CertificateOwner { private void updateName(GigiResultSet rs) { name = new Name(rs.getString("fname"), rs.getString("lname"), rs.getString("mname"), rs.getString("suffix")); - dob = rs.getDate("dob"); + dob = new DayDate(rs.getDate("dob")); email = rs.getString("email"); String localeStr = rs.getString("language"); @@ -67,7 +69,7 @@ public class User extends CertificateOwner { } } - public User(String email, String password, Name name, Date dob, Locale locale) throws GigiApiException { + public User(String email, String password, Name name, DayDate dob, Locale locale) throws GigiApiException { this.email = email; this.dob = dob; this.name = name; @@ -79,7 +81,7 @@ public class User extends CertificateOwner { query.setString(4, name.getMname()); query.setString(5, name.getLname()); query.setString(6, name.getSuffix()); - query.setDate(7, dob); + query.setDate(7, dob.toSQLDate()); query.setString(8, locale.toString()); query.setInt(9, getId()); query.execute(); @@ -91,11 +93,11 @@ public class User extends CertificateOwner { return name; } - public Date getDoB() { + public DayDate getDoB() { return dob; } - public void setDoB(Date dob) { + public void setDoB(DayDate dob) { this.dob = dob; } @@ -132,7 +134,7 @@ public class User extends CertificateOwner { } public boolean canAssure() { - if ( !isOfAge(14)) { // PoJAM + if ( !CalendarUtil.isOfAge(dob, 14)) { // PoJAM return false; } if (getAssurancePoints() < 100) { @@ -194,7 +196,7 @@ public class User extends CertificateOwner { * @return the maximal points @ */ public int getMaxAssurePoints() { - if ( !isOfAge(18)) { + if ( !CalendarUtil.isOfAge(dob, 18)) { return 10; // PoJAM } @@ -220,17 +222,6 @@ public class User extends CertificateOwner { return points; } - public boolean isOfAge(int desiredAge) { - Calendar c = Calendar.getInstance(); - c.setTime(dob); - int year = c.get(Calendar.YEAR); - int month = c.get(Calendar.MONTH); - int day = c.get(Calendar.DAY_OF_MONTH); - c.set(year, month, day); - c.add(Calendar.YEAR, desiredAge); - return System.currentTimeMillis() >= c.getTime().getTime(); - } - public boolean isValidName(String name) { return getName().matches(name); } @@ -335,7 +326,7 @@ public class User extends CertificateOwner { update.setString(2, name.getLname()); update.setString(3, name.getMname()); update.setString(4, name.getSuffix()); - update.setDate(5, getDoB()); + update.setDate(5, getDoB().toSQLDate()); update.setInt(6, getId()); update.executeUpdate(); }