From: Janis Streib Date: Tue, 13 Jan 2015 17:23:21 +0000 (+0100) Subject: ADD: Contet to SE Page X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=dea51b6e516c2af868d4ea34d3e5a0ced5f276cf ADD: Contet to SE Page --- diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java index ee34a6b2..82cc2745 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.java @@ -6,13 +6,25 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.DateSelector; import org.cacert.gigi.output.template.Form; +import org.cacert.gigi.output.template.Template; public class SupportUserDetailsForm extends Form { - public SupportUserDetailsForm(HttpServletRequest hsr) { + private static Template t; + + private User user; + + static { + t = new Template(FindDomainForm.class.getResource("SupportUserDetailsForm.templ")); + } + + public SupportUserDetailsForm(HttpServletRequest hsr, User user) { super(hsr); + this.user = user; } @Override @@ -21,6 +33,22 @@ public class SupportUserDetailsForm extends Form { } @Override - protected void outputContent(PrintWriter out, Language l, Map vars) {} + protected void outputContent(PrintWriter out, Language l, Map vars) { + vars.put("mail", user.getEmail()); + vars.put("fname", user.getFname()); + vars.put("mname", user.getMname()); + vars.put("lname", user.getLname()); + vars.put("suffix", user.getSuffix()); + vars.put("assurer", user.canAssure()); + vars.put("dob", new DateSelector("dobd", "dobm", "doby", user.getDob())); + vars.put("blockedassurer", false); // TODO Fill all following "false" + vars.put("locked", false); + vars.put("codesign", false); + vars.put("orgassurer", false); + vars.put("ttpadmin", false); + vars.put("assurancepoints", user.getAssurancePoints()); + vars.put("id", user.getId()); + t.output(out, l, vars); + } } diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ index e69de29b..5d35a792 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
's Account Details
Email:
: + +
:
: + +
:
: + +
:
: + + + + + +
: + + + + + +
: + + + + + +
: + + + + +
: + + + + + +
: + + + + + +
:
:
:
+
\ No newline at end of file diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java index 9b135e74..46b4aca2 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java @@ -1,10 +1,21 @@ package org.cacert.gigi.pages.admin.support; import java.io.IOException; +import java.security.GeneralSecurityException; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.cacert.gigi.dbObjects.Certificate; +import org.cacert.gigi.dbObjects.CertificateProfile; +import org.cacert.gigi.dbObjects.EmailAddress; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.DateSelector; +import org.cacert.gigi.output.template.IterableDataset; import org.cacert.gigi.pages.Page; public class SupportUserDetailsPage extends Page { @@ -16,6 +27,70 @@ public class SupportUserDetailsPage extends Page { } @Override - public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {} + public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + int id; + String[] idP = req.getPathInfo().split("/"); + id = Integer.parseInt(idP[idP.length - 1]); + final User user = User.getById(id); + SupportUserDetailsForm f = new SupportUserDetailsForm(req, user); + HashMap vars = new HashMap(); + vars.put("details", f); + final EmailAddress[] addrs = user.getEmails(); + vars.put("emails", new IterableDataset() { + int i = 0; + + @Override + public boolean next(Language l, Map vars) { + String address = addrs[i].getAddress(); + if ( !address.equals(user.getEmail())) { + vars.put("secmail", address); + } + i++; + return i != addrs.length - 1; + } + }); + final Certificate[] certs = user.getCertificates(true); + final CertificateProfile[] profiles = CertificateProfile.getAll(); + vars.put("types", new IterableDataset() { + + int typeIndex = 0; + + @Override + public boolean next(Language l, Map vars) { + if (typeIndex > profiles.length - 1) { + return false; + } + int valid = 0; + int total = 0; + long lastExpire = Long.MIN_VALUE; + for (int i = 0; i < certs.length; i++) { + try { + if (certs[i].getProfile().getId() != profiles[typeIndex].getId()) { + continue; + } + total++; + certs[i].cert().checkValidity(); + lastExpire = Math.max(lastExpire, certs[i].cert().getNotAfter().getTime()); + valid++; + } catch (GeneralSecurityException | IOException e) { + continue; + } + } + vars.put("total", total); + vars.put("profile", profiles[typeIndex].getVisibleName()); + vars.put("valid", valid); + vars.put("exp", total - valid); + vars.put("rev", "TODO"); + if (lastExpire == Long.MIN_VALUE) { + vars.put("lastdate", "-"); + } else { + vars.put("lastdate", DateSelector.getDateFormat().format(new Date(lastExpire))); + } + typeIndex++; + return true; + } + }); + getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); + } } diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.templ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.templ new file mode 100644 index 00000000..5c0ef84e --- /dev/null +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.templ @@ -0,0 +1,41 @@ + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
\ No newline at end of file