X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FSupportUserDetailsPage.java;h=924ba08b17c1c562808c1035518481160d8f296b;hb=f0b9b09f6cc96110ec0974d085bd05bef403a9c6;hp=70146d5f8caa63d9d863d6790972dd412dfc69bd;hpb=0934018d9cd2ffa74eae27daf0a330f5707ddcfc;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 70146d5f..924ba08b 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java @@ -10,6 +10,7 @@ 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; @@ -26,14 +27,19 @@ public class SupportUserDetailsPage extends Page { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - int id; + int id = -1; String[] idP = req.getPathInfo().split("/"); - id = Integer.parseInt(idP[idP.length - 1]); + try { + id = Integer.parseInt(idP[idP.length - 1]); + } catch (NumberFormatException e) { + resp.sendError(404); + } final User user = User.getById(id); - SupportUserDetailsForm f = new SupportUserDetailsForm(req, user); + String ticket = (String) req.getSession().getAttribute("ticketNo" + user.getId()); + SupportUserDetailsForm f = new SupportUserDetailsForm(req, new SupportedUser(user, getUser(req), ticket)); HashMap vars = new HashMap(); vars.put("details", f); - vars.put("ticketNo", req.getSession().getAttribute("ticketNo" + user.getId())); + vars.put("ticketNo", ticket); final EmailAddress[] addrs = user.getEmails(); vars.put("emails", new IterableDataset() { @@ -52,22 +58,31 @@ public class SupportUserDetailsPage extends Page { return true; } }); - vars.put("certifrevoke", new SupportRevokeCertificatesForm(req, user)); + 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 { - if (req.getParameter("setTicket") != null) { - try { + try { + if (req.getParameter("setTicket") != null) { + if ( !Form.getForm(req, SupportEnterTicketForm.class).submit(resp.getWriter(), req)) { throw new GigiApiException("Invalid ticket number!"); } - } catch (GigiApiException e) { - e.printStackTrace(); - e.format(resp.getWriter(), getLanguage(req)); + } else 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) { + if ( !Form.getForm(req, SupportUserDetailsForm.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); }