1 package org.cacert.gigi.pages.account;
3 import java.io.IOException;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.util.Collections;
8 import java.util.HashMap;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
14 import org.cacert.gigi.Language;
15 import org.cacert.gigi.User;
16 import org.cacert.gigi.database.DatabaseConnection;
17 import org.cacert.gigi.output.template.IterableDataset;
18 import org.cacert.gigi.pages.LoginPage;
19 import org.cacert.gigi.output.Form;
20 import org.cacert.gigi.output.template.Template;
21 import org.cacert.gigi.pages.Page;
23 public class MailCertificateAdd extends Page {
24 public static final String PATH = "/account/certs/email/new";
25 Template t = new Template(MailCertificateAdd.class.getResource("RequestCertificate.templ"));
27 public MailCertificateAdd() {
28 super("Create Email certificate");
32 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
33 HashMap<String, Object> vars = new HashMap<String, Object>();
34 vars.put("CCA", "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
36 User u = LoginPage.getUser(req);
38 PreparedStatement ps = DatabaseConnection.getInstance().prepare(
39 "SELECT `id`,`email` from `email` WHERE `memid`=? AND `deleted`=0");
40 ps.setInt(1, u.getId());
41 final ResultSet rs = ps.executeQuery();
42 vars.put("emails", new IterableDataset() {
45 public boolean next(Language l, Map<String, Object> vars) {
50 vars.put("id", rs.getString(1));
51 vars.put("value", rs.getString(2));
53 } catch (SQLException e) {
59 getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
61 } catch (SQLException e) {
67 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
68 IssueCertificateForm f;
69 if (req.getParameter(Form.CSRF_FIELD) != null) {
70 f = Form.getForm(req, IssueCertificateForm.class);
72 f = new IssueCertificateForm(req);
73 f.submit(resp.getWriter(), req);
75 f.output(resp.getWriter(), getLanguage(req), Collections.<String, Object> emptyMap());