]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/admin/support/SupportRevokeCertificatesForm.java
upd: use a more strict pattern for handling forms
[gigi.git] / src / org / cacert / gigi / pages / admin / support / SupportRevokeCertificatesForm.java
index af02cb53681fc27b62d2ae562d9d6634e85a576b..b43220c239bc1fdad5ec154b42e97b261a468ccd 100644 (file)
@@ -10,22 +10,19 @@ 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.DateSelector;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
 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);
@@ -33,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 boolean submit(HttpServletRequest req) throws GigiApiException {
+        if (user.getTicket() == null) {
+            throw new GigiApiException("No ticket number set.");
         }
-        return false;
+        user.revokeAllCertificates();
+        return true;
     }
 
     @Override
@@ -56,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 {
@@ -63,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++;
@@ -74,11 +79,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;