import javax.servlet.http.HttpServletRequest;
+import club.wpia.gigi.Gigi;
import club.wpia.gigi.GigiApiException;
import club.wpia.gigi.database.GigiPreparedStatement;
import club.wpia.gigi.database.GigiResultSet;
import club.wpia.gigi.util.CalendarUtil;
import club.wpia.gigi.util.HTMLEncoder;
import club.wpia.gigi.util.Notary;
-import club.wpia.gigi.util.PasswordStrengthChecker;
import club.wpia.gigi.util.RateLimit.RateLimitException;
public class Signup extends Form {
vars.put("name", ni);
vars.put("dob", myDoB);
vars.put("email", HTMLEncoder.encodeHTML(email));
- vars.put("helpOnNames", new SprintfCommand("Help on Names {0}in the wiki{1}", Arrays.asList("!(/wiki/names", "!'</a>")));
+ vars.put("helpOnNames", new SprintfCommand("Help on Names in our {0}FAQ{1}", Arrays.asList("!(/kb/names", "!'</a>")));
vars.put("csrf", getCSRFToken());
vars.put("dobmin", User.MINIMUM_AGE + "");
vars.put("countryCode", cs);
ga.mergeInto(new GigiApiException("Entered date of birth exceeds the maximum age set in our policies. Please check your DoB is correct and contact support if the issue persists."));
}
- if ( !"1".equals(req.getParameter("tos_agree"))) {
- ga.mergeInto(new GigiApiException("Acceptance of the ToS is required to continue."));
- }
if (email.equals("")) {
ga.mergeInto(new GigiApiException("Email Address was blank"));
}
} else if ( !pw1.equals(pw2)) {
ga.mergeInto(new GigiApiException("Passwords don't match"));
}
- int pwpoints = PasswordStrengthChecker.checkpw(pw1, ni.getNamePartsPlain(), email);
- if (pwpoints < 3) {
- ga.mergeInto(new GigiApiException(new SprintfCommand("The Password you submitted failed to contain enough differing characters and/or contained words from your name and/or email address. For the current requirements and to learn more, visit our {0}FAQ{1}.", Arrays.asList("!(/wiki/goodPassword", "!'</a>'"))));
+
+ if ( !"1".equals(req.getParameter("tos_agree"))) {
+ ga.mergeInto(new GigiApiException("Acceptance of the ToS is required to continue."));
+ }
+
+ if ( !"1".equals(req.getParameter("dp_agree"))) {
+ ga.mergeInto(new GigiApiException("Acceptance of the Data Protection Policy is required to continue."));
}
+
if ( !ga.isEmpty()) {
throw ga;
}
+ GigiApiException gaPassword = Gigi.getPasswordChecker().checkPassword(pw1, ni.getNamePartsPlain(), email);
+ if (gaPassword != null) {
+ throw gaPassword;
+ }
GigiApiException ga2 = new GigiApiException();
try (GigiPreparedStatement q1 = new GigiPreparedStatement("SELECT * FROM `emails` WHERE `email`=? AND `deleted` IS NULL"); GigiPreparedStatement q2 = new GigiPreparedStatement("SELECT * FROM `certOwners` INNER JOIN `users` ON `users`.`id`=`certOwners`.`id` WHERE `email`=? AND `deleted` IS NULL")) {
q1.setString(1, email);
private void run(HttpServletRequest req, String password) throws GigiApiException {
User u = new User(email, password, myDoB.getDate(), Page.getLanguage(req).getLocale(), cs.getCountry(), ni.getNameParts());
Notary.writeUserAgreement(u, "ToS", "account creation", "", true, 0);
+ Notary.writeUserAgreement(u, "Data Protection Policy", "account creation", "", true, 0);
}
}