X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fmain%2FSignup.java;h=011b63843d43aaee07d8c405f268236a5ad516ba;hb=65e50396a0c9fdc000036f5990ffa1b388df4c5e;hp=a10a68d745beb6f3f73fd78af7191ed91c038a03;hpb=ab9818f784c71e0f75c1c1dd621da8a3a88cffa4;p=gigi.git diff --git a/src/org/cacert/gigi/pages/main/Signup.java b/src/org/cacert/gigi/pages/main/Signup.java index a10a68d7..011b6384 100644 --- a/src/org/cacert/gigi/pages/main/Signup.java +++ b/src/org/cacert/gigi/pages/main/Signup.java @@ -13,12 +13,14 @@ import org.cacert.gigi.database.GigiResultSet; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.email.EmailProvider; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.CountrySelector; import org.cacert.gigi.output.DateSelector; import org.cacert.gigi.output.NameInput; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.PlainOutputable; import org.cacert.gigi.output.template.SprintfCommand; import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.output.template.TranslateCommand; import org.cacert.gigi.pages.Page; import org.cacert.gigi.util.CalendarUtil; import org.cacert.gigi.util.HTMLEncoder; @@ -36,9 +38,12 @@ public class Signup extends Form { private boolean general = true, country = true, regional = true, radius = true; + private CountrySelector cs; + public Signup(HttpServletRequest hsr) { super(hsr); ni = new NameInput(); + cs = new CountrySelector("residenceCountry", true); } private DateSelector myDoB = new DateSelector("day", "month", "year"); @@ -56,6 +61,7 @@ public class Signup extends Form { vars.put("helpOnNames", String.format(l.getTranslation("Help on Names %sin the wiki%s"), "", "")); vars.put("csrf", getCSRFToken()); vars.put("dobmin", User.MINIMUM_AGE + ""); + vars.put("countryCode", cs); t.output(out, l, vars); } @@ -78,13 +84,17 @@ public class Signup extends Form { } catch (GigiApiException e) { problems.mergeInto(e); } + + cs.update(r); + if ( !problems.isEmpty()) { throw problems; } + } @Override - public synchronized boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + public synchronized SubmissionResult submit(HttpServletRequest req) throws GigiApiException { if (RegisterPage.RATE_LIMIT.isLimitExceeded(req.getRemoteAddr())) { throw new RateLimitException(); } @@ -174,11 +184,11 @@ public class Signup extends Form { throw ga2; } run(req, pw1); - return true; + return new SuccessMessageResult(new TranslateCommand("Your information has been submitted" + " into our system. You will now be sent an email with a web link," + " you need to open that link in your web browser within 24 hours" + " or your information will be removed from our system!")); } private void run(HttpServletRequest req, String password) throws GigiApiException { - User u = new User(email, password, myDoB.getDate(), Page.getLanguage(req).getLocale(), ni.getNameParts()); + User u = new User(email, password, myDoB.getDate(), Page.getLanguage(req).getLocale(), cs.getCountry(), ni.getNameParts()); try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO `alerts` SET `memid`=?," + " `general`=?, `country`=?, `regional`=?, `radius`=?")) { ps.setInt(1, u.getId()); @@ -189,6 +199,6 @@ public class Signup extends Form { ps.execute(); } Notary.writeUserAgreement(u, "ToS", "account creation", "", true, 0); - } + }