X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2Fcerts%2FCertificateModificationForm.java;h=7c3f7840689ea24c9c2c9136896a9a6d19b1d287;hp=8449c20f019e961b5c49dea34fab52b846f7a6f3;hb=abff88a2bf173198fe55c35ead97c9c7cdb5924c;hpb=787dc5faad7c6829b0e9b699767fc6e13c17999e diff --git a/src/org/cacert/gigi/pages/account/certs/CertificateModificationForm.java b/src/org/cacert/gigi/pages/account/certs/CertificateModificationForm.java index 8449c20f..7c3f7840 100644 --- a/src/org/cacert/gigi/pages/account/certs/CertificateModificationForm.java +++ b/src/org/cacert/gigi/pages/account/certs/CertificateModificationForm.java @@ -6,9 +6,10 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Certificate; +import org.cacert.gigi.dbObjects.CertificateOwner; import org.cacert.gigi.dbObjects.Job; -import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; import org.cacert.gigi.output.CertificateIterable; import org.cacert.gigi.output.template.Form; @@ -17,14 +18,14 @@ import org.cacert.gigi.pages.LoginPage; public class CertificateModificationForm extends Form { - User target; + private CertificateOwner target; - final boolean withRevoked; + private final boolean withRevoked; public CertificateModificationForm(HttpServletRequest hsr, boolean withRevoked) { super(hsr); this.withRevoked = withRevoked; - target = LoginPage.getUser(hsr); + target = LoginPage.getAuthorizationContext(hsr).getTarget(); } private static final Template certTable = new Template(CertificateIterable.class.getResource("CertificateTable.templ")); @@ -32,11 +33,14 @@ public class CertificateModificationForm extends Form { private static final Template myTemplate = new Template(CertificateModificationForm.class.getResource("CertificateModificationForm.templ")); @Override - public boolean submit(PrintWriter out, HttpServletRequest req) { + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { + String action = req.getParameter("action"); + if ( !"revoke".equals(action)) { + throw new GigiApiException("Incorrect action given."); + } String[] certs = req.getParameterValues("certs[]"); if (certs == null) { - // nothing to do - return false; + throw new GigiApiException("No certificates to revoke."); } LinkedList revokes = new LinkedList(); for (String serial : certs) { @@ -48,25 +52,27 @@ public class CertificateModificationForm extends Form { } long start = System.currentTimeMillis(); for (Job job : revokes) { - try { - int toWait = (int) (60000 + start - System.currentTimeMillis()); - if (toWait > 0) { - job.waitFor(toWait); - } else { - break; // canceled... waited too log - } - } catch (InterruptedException e) { - e.printStackTrace(); + int toWait = (int) (60000 + start - System.currentTimeMillis()); + if (toWait > 0) { + job.waitFor(toWait); + } else { + break; // canceled... waited too log } } - - return false; + return new RedirectResult(req.getPathInfo()); } @Override protected void outputContent(PrintWriter out, Language l, Map vars) { vars.put("certs", new CertificateIterable(target.getCertificates(withRevoked))); vars.put("certTable", certTable); + if (withRevoked) { + vars.put("all", "btn-primary"); + vars.put("current", "btn-info"); + } else { + vars.put("all", "btn-info"); + vars.put("current", "btn-primary"); + } myTemplate.output(out, l, vars); }