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=e51a19ec26d514d710ab14a4dee5563a8b3e206d;hb=a4a022f3ef3f697298fca60520d422d8662ec706;hpb=f643fac1b939993dd6b32e814aaca58d59f4c2b1 diff --git a/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java b/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java index e51a19ec..ff64c6f5 100644 --- a/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java +++ b/src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java @@ -10,30 +10,36 @@ 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.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; 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 User user; - static { - t = new Template(SupportRevokeCertificatesForm.class.getResource("SupportRevokeCertificatesForm.templ")); - } + private SupportedUser user; - 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(); + String subject = "Revoke certificates"; + Outputable message = new TranslateCommand("All certificates in the account have been revoked."); + user.sendSupportNotification(subject, message); + return true; + } return false; } @@ -52,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 { @@ -59,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++; @@ -70,11 +84,11 @@ 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 { - vars.put("lastdate", DateSelector.getDateFormat().format(new Date(lastExpire))); + vars.put("lastdate", new Date(lastExpire)); } typeIndex++; return true;