X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2FMailOverview.java;h=15be75c4d594e5cf0357b9cf0f04b129a71d7f22;hb=edd3dc5109f2dbeaf1797c7643d85ba36d0b3763;hp=f165cc10b09b1de21b259066883170824809f2e9;hpb=6dd543c2f2c7e585a1e97f9db6b933fac46406eb;p=gigi.git diff --git a/src/org/cacert/gigi/pages/account/MailOverview.java b/src/org/cacert/gigi/pages/account/MailOverview.java index f165cc10..15be75c4 100644 --- a/src/org/cacert/gigi/pages/account/MailOverview.java +++ b/src/org/cacert/gigi/pages/account/MailOverview.java @@ -1,28 +1,120 @@ 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.output.MailTable; +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.Outputable; +import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.Page; +import org.cacert.gigi.util.RandomToken; public class MailOverview extends Page { public static final String DEFAULT_PATH = "/account/mails"; + private MailTable t; public MailOverview(String title) { super(title); + t = new MailTable("res", "us"); } @Override - public void doGet(HttpServletRequest req, HttpServletResponse resp) - throws IOException { - HashMap vars = new HashMap(); - - new MailTable().output(resp.getWriter(), getLanguage(req), vars); + public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + final User us = LoginPage.getUser(req); + Language lang = Page.getLanguage(req); + int id = us.getId(); + try { + PreparedStatement ps = DatabaseConnection.getInstance().prepare( + "SELECT * from `email` WHERE `memid`=? AND `deleted`=0"); + ps.setInt(1, id); + ResultSet rs = ps.executeQuery(); + HashMap vars = new HashMap<>(); + vars.put("mailData", t); + vars.put("res", rs); + vars.put("us", us.getEmail()); + vars.put("addForm", new MailAddForm(req)); + vars.put("manForm", new MailManagementForm(req)); + getDefaultTemplate().output(resp.getWriter(), lang, vars); + } catch (SQLException e) { + e.printStackTrace(); + } + } + @Override + public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + PrintWriter out = resp.getWriter(); + User us = LoginPage.getUser(req); + if (req.getParameter("addmail") != null) { + MailAddForm f = Form.getForm(req, MailAddForm.class); + if (f.submit(out, req)) { + EmailAddress addr = new EmailAddress(f.getMail(), us, RandomToken.generateToken(16)); + addr.insert(Page.getLanguage(req)); + } + } else if (req.getParameter("makedefault") != null || req.getParameter("delete") != null) { + System.out.println("MakeDefault/Delete"); + MailManagementForm f = Form.getForm(req, MailManagementForm.class); + f.submit(out, req); + } + super.doPost(req, resp); } + private class MailTable implements Outputable { + private String mails, userMail; + + public MailTable(String mails, String userMail) { + this.mails = mails; + this.userMail = userMail; + } + + @Override + public void output(PrintWriter out, Language l, Map vars) { + try { + ResultSet rs = (ResultSet) vars.get(mails); + String usM = (String) vars.get(userMail); + while (rs.next()) { + out.println(""); + out.println(""); + out.println(""); + if (rs.getString(7).isEmpty()) { + out.print(l.getTranslation("Verified")); + } else { + out.print(l.getTranslation("Unverified")); + } + out.print(""); + out.println(""); + String address = rs.getString(3); + if (usM.equals(address)) { + out.print(l.getTranslation("N/A")); + } else { + out.print(""); + } + out.print(""); + out.println(""); + out.print(address); + out.print(""); + out.println(""); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + + } }