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.template.Form;
import org.cacert.gigi.output.template.Template;
public class SupportEnterTicketForm extends Form {
private static Template t;
+
+ private User target;
static {
t = new Template(SupportEnterTicketForm.class.getResource("SupportEnterTicketForm.templ"));
}
- public SupportEnterTicketForm(HttpServletRequest hsr) {
+ public SupportEnterTicketForm(HttpServletRequest hsr, User target) {
super(hsr);
+ this.target = target;
}
@Override
public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+ // [asdmASDM]\d{8}\.\d+
+ String ticket = req.getParameter("ticketno");
+ if (ticket.matches("[asdmASDM]\\d{8}\\.\\d+")) {
+ req.getSession().setAttribute("ticketNo" + target.getId(), ticket);
+ return true;
+ }
return false;
}
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.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;
SupportUserDetailsForm f = new SupportUserDetailsForm(req, user);
HashMap<String, Object> vars = new HashMap<String, Object>();
vars.put("details", f);
+ vars.put("ticketNo", req.getSession().getAttribute("ticketNo" + user.getId()));
final EmailAddress[] addrs = user.getEmails();
vars.put("emails", new IterableDataset() {
}
});
vars.put("certifrevoke", new SupportRevokeCertificatesForm(req, user));
- vars.put("tickethandling", new SupportEnterTicketForm(req));
+ 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 {
+ 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));
+ }
+ }
+ super.doPost(req, resp);
+ }
+
@Override
public boolean isPermitted(User u) {
if (u == null) {