X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FSupportUserDetailsPage.java;h=f1eed52624011a9463e7ac7ac2af84e3494695a9;hb=00325134545e9b9c04ae2af6463e7621e2f02efa;hp=ee807253da0efbe0466428cb8cf4d4292009eb46;hpb=6670a02284e267610c3e5f4693db274403f001e9;p=gigi.git diff --git a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java index ee807253..f1eed526 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java @@ -7,10 +7,13 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.cacert.gigi.GigiApiException; 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.Page; @@ -31,6 +34,8 @@ public class SupportUserDetailsPage extends Page { SupportUserDetailsForm f = new SupportUserDetailsForm(req, user); HashMap vars = new HashMap(); vars.put("details", f); + String ticket = (String) req.getSession().getAttribute("ticketNo" + user.getId()); + vars.put("ticketNo", ticket); final EmailAddress[] addrs = user.getEmails(); vars.put("emails", new IterableDataset() { @@ -49,11 +54,31 @@ public class SupportUserDetailsPage extends Page { return true; } }); - vars.put("certifrevoke", new SupportRevokeCertificatesForm(req, user)); - vars.put("tickethandling", new SupportEnterTicketForm(req)); + vars.put("certifrevoke", new SupportRevokeCertificatesForm(req, new SupportedUser(user, getUser(req), ticket))); + vars.put("tickethandling", new SupportEnterTicketForm(req, user)); 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 ( !Form.getForm(req, SupportRevokeCertificatesForm.class).submit(resp.getWriter(), req)) { + throw new GigiApiException("No ticket number set."); + } + } + } catch (GigiApiException e) { + e.printStackTrace(); + e.format(resp.getWriter(), getLanguage(req)); + } + super.doPost(req, resp); + } + @Override public boolean isPermitted(User u) { if (u == null) {