From: Felix Dörre Date: Sat, 1 Nov 2014 19:31:31 +0000 (+0100) Subject: Fix testcases. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=da72882d9ff14bd4077d9f71ae134a67581c49cb Fix testcases. --- diff --git a/src/org/cacert/gigi/dbObjects/CertificateOwner.java b/src/org/cacert/gigi/dbObjects/CertificateOwner.java index 3091de6c..7c111bee 100644 --- a/src/org/cacert/gigi/dbObjects/CertificateOwner.java +++ b/src/org/cacert/gigi/dbObjects/CertificateOwner.java @@ -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()) { @@ -129,4 +129,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); + } } diff --git a/src/org/cacert/gigi/dbObjects/ObjectCache.java b/src/org/cacert/gigi/dbObjects/ObjectCache.java index 1d239757..d1e41f82 100644 --- a/src/org/cacert/gigi/dbObjects/ObjectCache.java +++ b/src/org/cacert/gigi/dbObjects/ObjectCache.java @@ -31,4 +31,8 @@ public class ObjectCache { objectCache.hashmap.clear(); } } + + public void remove(T toRm) { + hashmap.remove(toRm); + } } diff --git a/src/org/cacert/gigi/dbObjects/Organisation.java b/src/org/cacert/gigi/dbObjects/Organisation.java index 633412c4..25a11b7a 100644 --- a/src/org/cacert/gigi/dbObjects/Organisation.java +++ b/src/org/cacert/gigi/dbObjects/Organisation.java @@ -138,7 +138,7 @@ public class Organisation extends CertificateOwner { } public static Organisation[] getOrganisations(int offset, int count) { - GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT id FROM organisations LIMIT ?,?"); + GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT certOwners.id FROM organisations inner join certOwners on certOwners.id=organisations.id where certOwners.deleted is null LIMIT ?,?"); ps.setInt(1, offset); ps.setInt(2, count); GigiResultSet res = ps.executeQuery(); diff --git a/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java b/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java index 87cf0e37..f6b35f96 100644 --- a/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java +++ b/src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java @@ -251,11 +251,14 @@ public class CertificateIssueForm extends Form { selectedDigest = Digest.valueOf(hashAlg); } profile = CertificateProfile.getByName(req.getParameter("profile")); - Organisation neworg = Organisation.getById(Integer.parseInt(req.getParameter("org"))); - if (neworg == null || u.getOrganisations().contains(neworg)) { - org = neworg; - } else { - outputError(out, req, "Selected Organisation is not part of your account."); + String newOrgStr = req.getParameter("org"); + if (newOrgStr != null) { + Organisation neworg = Organisation.getById(Integer.parseInt(newOrgStr)); + if (neworg == null || u.getOrganisations().contains(neworg)) { + org = neworg; + } else { + outputError(out, req, "Selected Organisation is not part of your account."); + } } ou = req.getParameter("OU"); if ( !u.canIssue(profile)) { diff --git a/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java b/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java index 6490c4aa..e1cc64fd 100644 --- a/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java +++ b/tests/org/cacert/gigi/pages/account/TestCertificateAdd.java @@ -310,7 +310,7 @@ public class TestCertificateAdd extends ManagedTest { } String profileKey = extractPattern(result, Pattern.compile("