X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FSupportRevokeCertificatesForm.java;h=5b163cc46af10ab6f82a158102b01b605e0003c0;hb=abff88a2bf173198fe55c35ead97c9c7cdb5924c;hp=e4bedb34e819f7686a63fe53e72f884c8cd3df86;hpb=8efbd22b42900f0184bd7265af9feb38fc0a4e08;p=gigi.git diff --git a/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java b/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java index e4bedb34..5b163cc4 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Certificate; +import org.cacert.gigi.dbObjects.Certificate.CertificateStatus; import org.cacert.gigi.dbObjects.CertificateProfile; import org.cacert.gigi.dbObjects.SupportedUser; import org.cacert.gigi.localisation.Language; @@ -19,12 +20,9 @@ import org.cacert.gigi.output.template.Template; public class SupportRevokeCertificatesForm extends Form { - private static Template t; + private static final Template t = new Template(SupportRevokeCertificatesForm.class.getResource("SupportRevokeCertificatesForm.templ")); private SupportedUser user; - static { - t = new Template(SupportRevokeCertificatesForm.class.getResource("SupportRevokeCertificatesForm.templ")); - } public SupportRevokeCertificatesForm(HttpServletRequest hsr, SupportedUser user) { super(hsr); @@ -32,12 +30,12 @@ public class SupportRevokeCertificatesForm extends Form { } @Override - public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { - if (user.getTicket() != null) { - user.revokeAllCertificates(); - return true; + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { + if (user.getTicket() == null) { + throw new GigiApiException("No ticket number set."); } - return false; + user.revokeAllCertificates(); + return new RedirectResult(req.getPathInfo()); } @Override @@ -55,6 +53,7 @@ public class SupportRevokeCertificatesForm extends Form { } int valid = 0; int total = 0; + int revoked = 0; long lastExpire = Long.MIN_VALUE; for (int i = 0; i < certs.length; i++) { try { @@ -62,6 +61,13 @@ public class SupportRevokeCertificatesForm extends Form { continue; } total++; + if (certs[i].getStatus() == CertificateStatus.DRAFT) { + continue; + } + if (certs[i].getStatus() == CertificateStatus.REVOKED) { + revoked++; + continue; + } certs[i].cert().checkValidity(); lastExpire = Math.max(lastExpire, certs[i].cert().getNotAfter().getTime()); valid++; @@ -73,7 +79,7 @@ public class SupportRevokeCertificatesForm extends Form { vars.put("profile", profiles[typeIndex].getVisibleName()); vars.put("valid", valid); vars.put("exp", total - valid); - vars.put("rev", "TODO"); + vars.put("rev", revoked); if (lastExpire == Long.MIN_VALUE) { vars.put("lastdate", "-"); } else {