import javax.servlet.http.HttpServletRequest;
import org.cacert.gigi.GigiApiException;
-import org.cacert.gigi.database.DatabaseConnection;
import org.cacert.gigi.database.GigiPreparedStatement;
import org.cacert.gigi.database.GigiResultSet;
import org.cacert.gigi.dbObjects.Name;
import org.cacert.gigi.output.template.Form;
import org.cacert.gigi.output.template.Template;
import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.CalendarUtil;
import org.cacert.gigi.util.HTMLEncoder;
import org.cacert.gigi.util.Notary;
import org.cacert.gigi.util.PasswordStrengthChecker;
vars.put("radius", radius ? " checked=\"checked\"" : "");
vars.put("helpOnNames", String.format(l.getTranslation("Help on Names %sin the wiki%s"), "<a href=\"//wiki.cacert.org/FAQ/HowToEnterNamesInJoinForm\" target=\"_blank\">", "</a>"));
vars.put("csrf", getCSRFToken());
+ vars.put("dobmin", User.MINIMUM_AGE + "");
t.output(out, l, vars);
}
@Override
public synchronized boolean submit(PrintWriter out, HttpServletRequest req) {
+ if (RegisterPage.RATE_LIMIT.isLimitExceeded(req.getRemoteAddr())) {
+ outputError(out, req, "Rate Limit Exceeded");
+ return false;
+ }
+
update(req);
if (buildupName.getLname().trim().equals("")) {
outputError(out, req, "Last name were blank.");
if ( !myDoB.isValid()) {
outputError(out, req, "Invalid date of birth");
}
- if ( !"1".equals(req.getParameter("cca_agree"))) {
- outputError(out, req, "You have to agree to the SomeCA Community agreement.");
+
+ if ( !CalendarUtil.isOfAge(myDoB.getDate(), User.MINIMUM_AGE)) {
+ outputError(out, req, "Entered dated of birth is below the restricted age requirements.");
+ }
+
+ if ( !"1".equals(req.getParameter("tos_agree"))) {
+ outputError(out, req, "Acceptance of the ToS is required to continue.");
}
if (email.equals("")) {
outputError(out, req, "Email Address was blank");
if (isFailed(out)) {
return false;
}
- if (RegisterPage.RATE_LIMIT.isLimitExceeded(req.getRemoteAddr())) {
- outputError(out, req, "Rate Limit Exceeded");
- return false;
- }
try {
run(req, pw1);
} catch (SQLException e) {
}
private void run(HttpServletRequest req, String password) throws SQLException, GigiApiException {
- try {
- DatabaseConnection.getInstance().beginTransaction();
- User u = new User(email, password, buildupName, myDoB.getDate(), Page.getLanguage(req).getLocale());
-
- try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO `alerts` SET `memid`=?," + " `general`=?, `country`=?, `regional`=?, `radius`=?")) {
- ps.setInt(1, u.getId());
- ps.setBoolean(2, general);
- ps.setBoolean(3, country);
- ps.setBoolean(4, regional);
- ps.setBoolean(5, radius);
- ps.execute();
- }
- Notary.writeUserAgreement(u, "CCA", "account creation", "", true, 0);
+ User u = new User(email, password, buildupName, myDoB.getDate(), Page.getLanguage(req).getLocale());
- DatabaseConnection.getInstance().commitTransaction();
- } finally {
- DatabaseConnection.getInstance().quitTransaction();
+ try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO `alerts` SET `memid`=?," + " `general`=?, `country`=?, `regional`=?, `radius`=?")) {
+ ps.setInt(1, u.getId());
+ ps.setBoolean(2, general);
+ ps.setBoolean(3, country);
+ ps.setBoolean(4, regional);
+ ps.setBoolean(5, radius);
+ ps.execute();
}
+ Notary.writeUserAgreement(u, "ToS", "account creation", "", true, 0);
}
}