X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2Fpages%2FMainPage.java;h=882e3a1de07f52b049e25c684560f45a0de94cba;hp=f55e90d309b113b886a1e0ebd58df32a03c0ad9d;hb=c16982cf659cbd521d587414bcf6f1afc1a6bf6c;hpb=15cdd016fea23498fcbf297756b991b3a3609a5d diff --git a/src/club/wpia/gigi/pages/MainPage.java b/src/club/wpia/gigi/pages/MainPage.java index f55e90d3..882e3a1d 100644 --- a/src/club/wpia/gigi/pages/MainPage.java +++ b/src/club/wpia/gigi/pages/MainPage.java @@ -1,11 +1,23 @@ package club.wpia.gigi.pages; import java.io.IOException; +import java.util.Iterator; +import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import club.wpia.gigi.dbObjects.Certificate; +import club.wpia.gigi.dbObjects.Domain; +import club.wpia.gigi.dbObjects.EmailAddress; +import club.wpia.gigi.dbObjects.Group; +import club.wpia.gigi.dbObjects.Organisation; +import club.wpia.gigi.dbObjects.User; +import club.wpia.gigi.localisation.Language; +import club.wpia.gigi.output.GroupIterator; +import club.wpia.gigi.output.template.IterableDataset; import club.wpia.gigi.output.template.Template; public class MainPage extends Page { @@ -20,7 +32,77 @@ public class MainPage extends Page { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { Map vars = getDefaultVars(req); if (LoginPage.getUser(req) != null) { + User u = LoginPage.getUser(req); + vars.put("username", u.getPreferredName()); + final Set gr = u.getGroups(); + vars.put("support-groups", new GroupIterator(gr.iterator(), true)); + vars.put("groups", new GroupIterator(gr.iterator(), false)); + vars.put("ra-agent", u.canVerify()); + vars.put("vp", u.getVerificationPoints()); + vars.put("xp", u.getExperiencePoints()); + + Certificate[] c = u.getCertificates(false); + vars.put("c-no", c.length); + + final EmailAddress[] emails = u.getEmails(); + IterableDataset ds = new IterableDataset() { + + private int point = 0; + + @Override + public boolean next(Language l, Map vars) { + if (point >= emails.length) { + return false; + } + EmailAddress emailAddress = emails[point]; + vars.put("verification", l.getTranslation(emailAddress.isVerified() ? "Verified" : "Unverified")); + vars.put("last_verification", emailAddress.getLastPing(true)); + vars.put("address", emailAddress.getAddress()); + point++; + return true; + } + }; + vars.put("emails", ds); + + final Domain[] doms = u.getDomains(); + IterableDataset dts = new IterableDataset() { + + private int point = 0; + + @Override + public boolean next(Language l, Map vars) { + if (point >= doms.length) { + return false; + } + Domain domain = doms[point]; + vars.put("domain", domain.getSuffix()); + vars.put("status", l.getTranslation(domain.isVerified() ? "Verified" : "Unverified")); + point++; + return true; + } + }; + vars.put("domains", dts); + vars.put("nodomains", doms.length == 0); + + final List o = u.getOrganisations(); + vars.put("orgas", new IterableDataset() { + + Iterator it = o.iterator(); + + @Override + public boolean next(Language l, Map vars) { + if ( !it.hasNext()) { + return false; + } + Organisation o = it.next(); + vars.put("orgName", o.getName()); + vars.put("orgID", o.getId()); + return true; + } + }); + vars.put("hasorgs", !o.isEmpty()); getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); + } else { notLog.output(resp.getWriter(), getLanguage(req), vars); }