]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/output/CertificateIterable.java
upd: added correct display of login and revoked status to status table
[gigi.git] / src / org / cacert / gigi / output / CertificateIterable.java
index 431b1c6ea4b924d4497ff8553012d1b699fa4fcc..bb2c493ce3024b16d0e78c4ac05efe8bc4eef4ff 100644 (file)
@@ -6,6 +6,7 @@ import java.security.cert.X509Certificate;
 import java.util.Map;
 
 import org.cacert.gigi.dbObjects.Certificate;
+import org.cacert.gigi.dbObjects.Certificate.CertificateStatus;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.IterableDataset;
 
@@ -25,22 +26,37 @@ public class CertificateIterable implements IterableDataset {
             return false;
         }
         Certificate c = certificates[i++];
-        vars.put("state", l.getTranslation(c.getStatus().toString().toLowerCase()));
+        vars.put("state", c.getStatus());
         vars.put("CN", c.getDistinguishedName());
         vars.put("serial", c.getSerial());
         vars.put("digest", c.getMessageDigest());
         vars.put("profile", c.getProfile().getVisibleName());
-        X509Certificate cert;
         try {
-            cert = c.cert();
-            vars.put("issued", DateSelector.getDateFormat().format(cert.getNotBefore()));
-            vars.put("expire", DateSelector.getDateFormat().format(cert.getNotAfter()));
+            CertificateStatus st = c.getStatus();
+            vars.put("revokable", st != CertificateStatus.REVOKED && st == CertificateStatus.ISSUED);
+            if (st == CertificateStatus.ISSUED || st == CertificateStatus.REVOKED) {
+                X509Certificate cert = c.cert();
+                vars.put("issued", cert.getNotBefore());
+                vars.put("expire", cert.getNotAfter());
+            } else {
+                vars.put("issued", l.getTranslation("N/A"));
+                vars.put("expire", l.getTranslation("N/A"));
+            }
+            if (st == CertificateStatus.REVOKED) {
+                vars.put("revoked", c.getRevocationDate());
+            } else {
+                vars.put("revoked", l.getTranslation("N/A"));
+            }
         } catch (IOException e) {
             e.printStackTrace();
         } catch (GeneralSecurityException e) {
             e.printStackTrace();
         }
-        vars.put("revoked", "TODO");// TODO output date
+        if (c.isLoginEnabled()) {
+            vars.put("login", l.getTranslation("No"));
+        } else {
+            vars.put("login", l.getTranslation("Yes"));
+        }
         return true;
     }
 }