X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Forga%2FCreateOrgForm.java;h=36bbbe8e511c23ac168891b886f79d6db376349f;hb=9efe305311c7e9f78a41093d2e2e9c57bfd10c7b;hp=57f39d62c6a1e60e7dd7b9351f537ecea8d7809c;hpb=cee46f66ee6e45667adf46a9a8b5df040bc61e21;p=gigi.git diff --git a/src/org/cacert/gigi/pages/orga/CreateOrgForm.java b/src/org/cacert/gigi/pages/orga/CreateOrgForm.java index 57f39d62..36bbbe8e 100644 --- a/src/org/cacert/gigi/pages/orga/CreateOrgForm.java +++ b/src/org/cacert/gigi/pages/orga/CreateOrgForm.java @@ -6,9 +6,11 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.Country; import org.cacert.gigi.dbObjects.Organisation; import org.cacert.gigi.email.EmailProvider; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.CountrySelector; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.SprintfCommand; import org.cacert.gigi.output.template.Template; @@ -22,8 +24,6 @@ public class CreateOrgForm extends Form { private String o = ""; - private String c = ""; - private String st = ""; private String l = ""; @@ -36,16 +36,21 @@ public class CreateOrgForm extends Form { private boolean isEdit = false; + private CountrySelector cs; + public CreateOrgForm(HttpServletRequest hsr) { super(hsr); + cs = new CountrySelector("C", false); } public CreateOrgForm(HttpServletRequest hsr, Organisation t) { - super(hsr); + this(hsr); isEdit = true; result = t; o = t.getName(); - c = t.getState(); + + cs = new CountrySelector("C", false, t.getState()); + st = t.getProvince(); l = t.getCity(); email = t.getContactEmail(); @@ -63,7 +68,7 @@ public class CreateOrgForm extends Form { if (action.equals("new")) { checkCertData(req); checkOrganisationData(req); - Organisation ne = new Organisation(o, c, st, l, email, optionalName, postalAddress, LoginPage.getUser(req)); + Organisation ne = new Organisation(o, cs.getCountry(), st, l, email, optionalName, postalAddress, LoginPage.getUser(req)); result = ne; return true; } else if (action.equals("updateOrganisationData")) { @@ -72,7 +77,7 @@ public class CreateOrgForm extends Form { return true; } else if (action.equals("updateCertificateData")) { checkCertData(req); - result.updateCertData(o, c, st, l); + result.updateCertData(o, cs.getCountry(), st, l); return true; } @@ -83,23 +88,21 @@ public class CreateOrgForm extends Form { email = extractParam(req, "contact"); optionalName = extractParam(req, "optionalName"); postalAddress = extractParam(req, "postalAddress"); - if ( !EmailProvider.MAIL.matcher(email).matches()) { + if ( !EmailProvider.isValidMailAddress(email)) { throw new GigiApiException("Contact email is not a valid email address"); } } private void checkCertData(HttpServletRequest req) throws GigiApiException { o = extractParam(req, "O"); - c = extractParam(req, "C"); st = extractParam(req, "ST"); l = extractParam(req, "L"); if (o.length() > 64 || o.length() < 1) { throw new GigiApiException(SprintfCommand.createSimple("{0} not given or longer than {1} characters", "Organisation name", 64)); } - if (c.length() != 2) { - throw new GigiApiException(SprintfCommand.createSimple("{0} not given or not exactly {1} characters long", "Country code", 2)); - } + + cs.update(req); if (st.length() > 128 || st.length() < 1) { throw new GigiApiException(SprintfCommand.createSimple("{0} not given or longer than {1} characters", "State/county", 128)); @@ -125,12 +128,13 @@ public class CreateOrgForm extends Form { @Override protected void outputContent(PrintWriter out, Language l, Map vars) { vars.put("O", o); - vars.put("C", c); + vars.put("C", cs); vars.put("ST", st); vars.put("L", this.l); vars.put("email", email); vars.put("optionalName", optionalName); vars.put("postalAddress", postalAddress); + vars.put("countryCode", cs); if (isEdit) { vars.put("edit", true); }