X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FSupportUserDetailsPage.java;h=7ab65b329f351da4a5194fb2f968d8103e026852;hp=b1ec3abf7bf041af50bad7260444130903075850;hb=b885f9bde0cb9e4b08070d2fae14eeca00923d3a;hpb=4d9b0e8bdf122324cec9f3dd387c02d14c30877e diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java index b1ec3abf..7ab65b32 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java @@ -8,13 +8,14 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.Domain; import org.cacert.gigi.dbObjects.EmailAddress; -import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.SupportedUser; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.IterableDataset; +import org.cacert.gigi.pages.LoginPage; import org.cacert.gigi.pages.Page; import org.cacert.gigi.util.AuthorizationContext; @@ -22,8 +23,8 @@ public class SupportUserDetailsPage extends Page { public static final String PATH = "/support/user/"; - public SupportUserDetailsPage(String title) { - super(title); + public SupportUserDetailsPage() { + super("Support: User Details"); } @Override @@ -36,11 +37,10 @@ public class SupportUserDetailsPage extends Page { resp.sendError(404); } final User user = User.getById(id); - String ticket = (String) req.getSession().getAttribute("ticketNo" + user.getId()); - SupportUserDetailsForm f = new SupportUserDetailsForm(req, new SupportedUser(user, getUser(req), ticket)); + SupportedUser targetUser = new SupportedUser(user, getUser(req), LoginPage.getAuthorizationContext(req).getSupporterTicketId()); + SupportUserDetailsForm f = new SupportUserDetailsForm(req, targetUser); HashMap vars = new HashMap(); vars.put("details", f); - vars.put("ticketNo", ticket); final EmailAddress[] addrs = user.getEmails(); vars.put("emails", new IterableDataset() { @@ -48,35 +48,47 @@ public class SupportUserDetailsPage extends Page { @Override public boolean next(Language l, Map vars) { - if (i == addrs.length) { - return false; + for (; i < addrs.length;) { + String address = addrs[i++].getAddress(); + if ( !address.equals(user.getEmail())) { + vars.put("secmail", address); + return true; + } } - String address = addrs[i].getAddress(); - i++; - if ( !address.equals(user.getEmail())) { - vars.put("secmail", address); + return false; + } + }); + + final Domain[] doms = user.getDomains(); + vars.put("domains", 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" : "not verified")); + point++; return true; } }); - vars.put("certifrevoke", new SupportRevokeCertificatesForm(req, new SupportedUser(user, getUser(req), ticket))); - vars.put("tickethandling", new SupportEnterTicketForm(req, user)); + + vars.put("certifrevoke", new SupportRevokeCertificatesForm(req, targetUser)); getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { try { - if (req.getParameter("setTicket") != null) { - - if ( !Form.getForm(req, SupportEnterTicketForm.class).submit(resp.getWriter(), req)) { - throw new GigiApiException("Invalid ticket number!"); - } - } else if (req.getParameter("revokeall") != null) { + if (req.getParameter("revokeall") != null) { if ( !Form.getForm(req, SupportRevokeCertificatesForm.class).submit(resp.getWriter(), req)) { throw new GigiApiException("No ticket number set."); } - } else if (req.getParameter("detailupdate") != null) { + } else if (req.getParameter("detailupdate") != null || req.getParameter("resetPass") != null || req.getParameter("deny") != null || req.getParameter("grant") != null) { if ( !Form.getForm(req, SupportUserDetailsForm.class).submit(resp.getWriter(), req)) { throw new GigiApiException("No ticket number set."); } @@ -90,6 +102,6 @@ public class SupportUserDetailsPage extends Page { @Override public boolean isPermitted(AuthorizationContext ac) { - return ac != null && ac.isInGroup(Group.SUPPORTER); + return ac != null && ac.canSupport(); } }