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()) {
- System.out.println("no " + id);
+ return null;
}
if (rs.getString("uid") != null) {
myCache.put(u = new User(rs));
}
- 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();
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);
+ }
}