]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/MailCertificateAdd.java
Build out certificate issuing.
[gigi.git] / src / org / cacert / gigi / pages / account / MailCertificateAdd.java
1 package org.cacert.gigi.pages.account;
2
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;
9 import java.util.Map;
10
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
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;
22
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"));
26
27         public MailCertificateAdd() {
28                 super("Create Email certificate");
29         }
30
31         @Override
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>");
35
36                 User u = LoginPage.getUser(req);
37                 try {
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() {
43
44                                 @Override
45                                 public boolean next(Language l, Map<String, Object> vars) {
46                                         try {
47                                                 if (!rs.next()) {
48                                                         return false;
49                                                 }
50                                                 vars.put("id", rs.getString(1));
51                                                 vars.put("value", rs.getString(2));
52                                                 return true;
53                                         } catch (SQLException e) {
54                                                 e.printStackTrace();
55                                         }
56                                         return false;
57                                 }
58                         });
59                         getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
60                         rs.close();
61                 } catch (SQLException e) {
62                         e.printStackTrace();
63                 }
64         }
65
66         @Override
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);
71                 } else {
72                         f = new IssueCertificateForm(req);
73                         f.submit(resp.getWriter(), req);
74                 }
75                 f.output(resp.getWriter(), getLanguage(req), Collections.<String, Object> emptyMap());
76
77         }
78 }