X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailCertificateAdd.java;h=769f9e1ad0d8aaf60de7f1d2ef7fedd744ff7403;hp=f01b8f0c79dad505fa6b88b8160cba6737ebbfe4;hb=ca82909d6bb910769eb756058d51d55e6d257914;hpb=2824d1c165c501e2f3a8809044788b33b81f478a diff --git a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java index f01b8f0c..769f9e1a 100644 --- a/src/org/cacert/gigi/pages/account/MailCertificateAdd.java +++ b/src/org/cacert/gigi/pages/account/MailCertificateAdd.java @@ -2,14 +2,21 @@ package org.cacert.gigi.pages.account; import java.io.IOException; import java.io.PrintWriter; +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.cacert.gigi.Certificate; +import org.cacert.gigi.User; +import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.output.ClientCSRGenerate; +import org.cacert.gigi.output.template.IterableDataset; +import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.Page; public class MailCertificateAdd extends Page { @@ -23,7 +30,35 @@ public class MailCertificateAdd extends Page { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { HashMap vars = new HashMap(); vars.put("CCA", "CCA"); - getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); + + User u = LoginPage.getUser(req); + try { + PreparedStatement ps = DatabaseConnection.getInstance().prepare( + "SELECT `id`,`email` from `email` WHERE `memid`=? AND `deleted`=0"); + ps.setInt(1, u.getId()); + final ResultSet rs = ps.executeQuery(); + vars.put("emails", new IterableDataset() { + + @Override + public boolean next(Map vars) { + try { + if (!rs.next()) { + return false; + } + vars.put("id", rs.getString(1)); + vars.put("value", rs.getString(2)); + return true; + } catch (SQLException e) { + e.printStackTrace(); + } + return false; + } + }); + getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); + rs.close(); + } catch (SQLException e) { + e.printStackTrace(); + } } @Override @@ -38,11 +73,11 @@ public class MailCertificateAdd extends Page { // Error. return; } - Certificate c = new Certificate("/commonName=CAcert WoT User", "sha256", csr); + Certificate c = new Certificate(LoginPage.getUser(req).getId(), "/commonName=CAcert WoT User", "sha256", csr); c.issue(); try { c.waitFor(60000); - resp.sendRedirect(MailCertificates.PATH + "/" + c.getId()); + resp.sendRedirect(MailCertificates.PATH + "/" + c.getSerial()); } catch (SQLException e) { e.printStackTrace(); } catch (InterruptedException e) {