X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FSupportRevokeCertificatesForm.java;h=ff64c6f5b1d3d10e5b70aa6c4ca1c10097c4bf6b;hp=e4bedb34e819f7686a63fe53e72f884c8cd3df86;hb=a4a022f3ef3f697298fca60520d422d8662ec706;hpb=8efbd22b42900f0184bd7265af9feb38fc0a4e08 diff --git a/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java b/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java index e4bedb34..ff64c6f5 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java @@ -10,21 +10,21 @@ 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; import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.IterableDataset; +import org.cacert.gigi.output.template.Outputable; import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.output.template.TranslateCommand; 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); @@ -35,6 +35,9 @@ public class SupportRevokeCertificatesForm extends Form { public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { if (user.getTicket() != null) { user.revokeAllCertificates(); + String subject = "Revoke certificates"; + Outputable message = new TranslateCommand("All certificates in the account have been revoked."); + user.sendSupportNotification(subject, message); return true; } return false; @@ -55,6 +58,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 +66,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 +84,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 {