import java.io.IOException;
import java.io.PrintWriter;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.cacert.gigi.dbObjects.Verifyable;
import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.output.template.Form;
+import org.cacert.gigi.output.template.SprintfCommand;
public class Verify extends Page {
+ private static final SprintfCommand emailAddressVerified = new SprintfCommand("Email address {0} verified", Arrays.asList("${subject}"));
+
+ private static final SprintfCommand domainVerified = new SprintfCommand("Domain {0} verified", Arrays.asList("${subject}"));
+
private class VerificationForm extends Form {
private String hash;
private Verifyable target;
+ String subject;
+
public VerificationForm(HttpServletRequest hsr) {
super(hsr, PATH);
hash = hsr.getParameter("hash");
type = hsr.getParameter("type");
id = hsr.getParameter("id");
if ("email".equals(type)) {
- target = EmailAddress.getById(Integer.parseInt(id));
- } else if ("domain".equals("type")) {
- target = Domain.getById(Integer.parseInt(id));
+ EmailAddress addr = EmailAddress.getById(Integer.parseInt(id));
+ subject = addr.getAddress();
+ target = addr;
+ } else if ("domain".equals(type)) {
+ Domain domain = Domain.getById(Integer.parseInt(id));
+ subject = domain.getSuffix();
+ target = domain;
}
}
@Override
public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+ HashMap<String, Object> data = new HashMap<>();
+ data.put("subject", subject);
if ("email".equals(type)) {
try {
target.verify(hash);
- out.println("Email verification completed.");
+ emailAddressVerified.output(out, getLanguage(req), data);
} catch (IllegalArgumentException e) {
out.println(translate(req, "The email address is invalid."));
} catch (GigiApiException e) {
} else if ("domain".equals(type)) {
try {
target.verify(hash);
- out.println("Domain verification completed.");
+ domainVerified.output(out, getLanguage(req), data);
} catch (IllegalArgumentException e) {
out.println(translate(req, "The domain is invalid."));
} catch (GigiApiException e) {
vars.put("hash", hash);
vars.put("id", id);
vars.put("type", type);
- if (target instanceof EmailAddress) {
- vars.put("subject", ((EmailAddress) target).getAddress());
- } else if (target instanceof Domain) {
- vars.put("subject", ((Domain) target).getSuffix());
- }
+
+ vars.put("subject", subject);
getDefaultTemplate().output(out, l, vars);
}
}