return new User(id);
}
+ public EmailAddress[] getEmails() {
+ try {
+ PreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT id FROM email WHERE memid=?");
+ ps.setInt(1, id);
+ ResultSet rs = ps.executeQuery();
+ rs.last();
+ int count = rs.getRow();
+ EmailAddress[] data = new EmailAddress[count];
+ rs.beforeFirst();
+ for (int i = 0; i < data.length; i++) {
+ if (!rs.next()) {
+ throw new Error("Internal sql api violation.");
+ }
+ data[i] = EmailAddress.getById(rs.getInt(1));
+ }
+ rs.close();
+ return data;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
}
import java.security.interfaces.DSAPublicKey;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.RSAPublicKey;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
+
import org.cacert.gigi.Certificate;
import org.cacert.gigi.Digest;
+import org.cacert.gigi.EmailAddress;
import org.cacert.gigi.Language;
import org.cacert.gigi.User;
-import org.cacert.gigi.database.DatabaseConnection;
import org.cacert.gigi.output.Form;
import org.cacert.gigi.output.template.HashAlgorithms;
import org.cacert.gigi.output.template.IterableDataset;
HashMap<String, Object> vars2 = new HashMap<String, Object>(vars);
vars2.put("CCA", "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
- 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();
- vars2.put("emails", new IterableDataset() {
-
- @Override
- public boolean next(Language l, Map<String, Object> 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();
- }
+ final EmailAddress[] ea = u.getEmails();
+ vars2.put("emails", new IterableDataset() {
+ int count;
+
+ @Override
+ public boolean next(Language l, Map<String, Object> vars) {
+ if (count >= ea.length) {
return false;
}
- });
- vars2.put("hashs", new HashAlgorithms(selectedDigest));
- t.output(out, l, vars2);
- } catch (SQLException e) {
- e.printStackTrace();
- }
+ vars.put("id", ea[count].getId());
+ vars.put("value", ea[count].getAddress());
+ count++;
+ return true;
+ }
+ });
+ vars2.put("hashs", new HashAlgorithms(selectedDigest));
+ t.output(out, l, vars2);
}
}
package org.cacert.gigi.pages.account;
import java.io.IOException;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Map;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.cacert.gigi.Language;
-import org.cacert.gigi.User;
-import org.cacert.gigi.database.DatabaseConnection;
-import org.cacert.gigi.output.template.IterableDataset;
-import org.cacert.gigi.pages.LoginPage;
import org.cacert.gigi.Certificate;
import org.cacert.gigi.output.Form;
import org.cacert.gigi.output.template.Template;
HashMap<String, Object> vars = new HashMap<String, Object>();
vars.put("CCA", "<a href='/policy/CAcertCommunityAgreement.html'>CCA</a>");
- 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(Language l, Map<String, Object> 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;
- }
- });
- t.output(resp.getWriter(), getLanguage(req), vars);
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
+ t.output(resp.getWriter(), getLanguage(req), vars);
}
@Override