]> 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 e4bedb34e819f7686a63fe53e72f884c8cd3df86..b43220c239bc1fdad5ec154b42e97b261a468ccd 100644 (file)
@@ -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 boolean submit(HttpServletRequest req) throws GigiApiException {
+        if (user.getTicket() == null) {
+            throw new GigiApiException("No ticket number set.");
         }
-        return false;
+        user.revokeAllCertificates();
+        return true;
     }
 
     @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 {