public SupportedUser(User target, User supporter, String ticket) {
this.supporter = supporter;
this.target = target;
+ this.ticket = ticket;
}
public void setName(String fname, String mname, String lname, String suffix) {
prep.executeUpdate();
}
+ public int getId() {
+ return target.getId();
+ }
+
+ public Certificate[] getCertificates(boolean includeRevoked) {
+ return target.getCertificates(includeRevoked);
+ }
+
+ public String getTicket() {
+ return ticket;
+ }
+
}
import org.cacert.gigi.GigiApiException;
import org.cacert.gigi.dbObjects.Certificate;
import org.cacert.gigi.dbObjects.CertificateProfile;
-import org.cacert.gigi.dbObjects.User;
+import org.cacert.gigi.dbObjects.SupportedUser;
import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.output.DateSelector;
import org.cacert.gigi.output.template.Form;
private static Template t;
- private User user;
+ private SupportedUser user;
static {
t = new Template(SupportRevokeCertificatesForm.class.getResource("SupportRevokeCertificatesForm.templ"));
}
- public SupportRevokeCertificatesForm(HttpServletRequest hsr, User user) {
+ public SupportRevokeCertificatesForm(HttpServletRequest hsr, SupportedUser user) {
super(hsr);
this.user = user;
}
@Override
public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+ if (user.getTicket() != null) {
+ user.revokeAllCertificates();
+ return true;
+ }
return false;
}
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;
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()));
+ String ticket = (String) req.getSession().getAttribute("ticketNo" + user.getId());
+ vars.put("ticketNo", ticket);
final EmailAddress[] addrs = user.getEmails();
vars.put("emails", new IterableDataset() {
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.");
+ }
}
+ } catch (GigiApiException e) {
+ e.printStackTrace();
+ e.format(resp.getWriter(), getLanguage(req));
}
super.doPost(req, resp);
}