]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/dbObjects/CertificateOwner.java
ADD: Param to include all certificates (also revoked ones)
[gigi.git] / src / org / cacert / gigi / dbObjects / CertificateOwner.java
index 3091de6c98c806eff28ffc2e5e10c786b16b359d..d7439f2ca0b60f8323b6395f6784f8b643288c37 100644 (file)
@@ -23,7 +23,7 @@ public abstract class CertificateOwner implements IdCachable {
     public static synchronized CertificateOwner getById(int id) {
         CertificateOwner u = myCache.get(id);
         if (u == null) {
-            GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT *, users.id AS uid, organisations.id AS oid FROM certOwners LEFT JOIN users ON users.id=certOwners.id LEFT JOIN organisations ON organisations.id = certOwners.id WHERE certOwners.id=?");
+            GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT *, users.id AS uid, organisations.id AS oid FROM certOwners LEFT JOIN users ON users.id=certOwners.id LEFT JOIN organisations ON organisations.id = certOwners.id WHERE certOwners.id=? AND deleted is null");
             ps.setInt(1, id);
             GigiResultSet rs = ps.executeQuery();
             if ( !rs.next()) {
@@ -91,8 +91,13 @@ public abstract class CertificateOwner implements IdCachable {
 
     }
 
-    public Certificate[] getCertificates() {
-        GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT serial FROM certs WHERE memid=? AND revoked IS NULL");
+    public Certificate[] getCertificates(boolean includeRevoked) {
+        GigiPreparedStatement ps;
+        if (includeRevoked) {
+            ps = DatabaseConnection.getInstance().prepare("SELECT serial FROM certs WHERE memid=?");
+        } else {
+            ps = DatabaseConnection.getInstance().prepare("SELECT serial FROM certs WHERE memid=? AND revoked IS NULL");
+        }
         ps.setInt(1, getId());
         GigiResultSet rs = ps.executeQuery();
         rs.last();
@@ -129,4 +134,10 @@ public abstract class CertificateOwner implements IdCachable {
         return false;
     }
 
+    public void delete() {
+        GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("UPDATE certOwners set deleted=NOW() WHERE id=?");
+        ps.setInt(1, getId());
+        ps.execute();
+        myCache.remove(this);
+    }
 }