import javax.servlet.http.HttpServletRequest;
import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.dbObjects.CountryCode;
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;
private String o = "";
- private String c = "";
-
private String st = "";
private String l = "";
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();
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")) {
return true;
} else if (action.equals("updateCertificateData")) {
checkCertData(req);
- result.updateCertData(o, c, st, l);
+ result.updateCertData(o, cs.getCountry(), st, l);
return true;
}
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));
@Override
protected void outputContent(PrintWriter out, Language l, Map<String, Object> 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);
}