]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/dbObjects/Organisation.java
ADD: Show and add affiliations to organistations.
[gigi.git] / src / org / cacert / gigi / dbObjects / Organisation.java
index fcd9b2a3b1a6003b24ba7131af8acb3d2c618168..633412c440fff98732c4fdfc11a0e9bfe2505cfa 100644 (file)
@@ -100,13 +100,20 @@ public class Organisation extends CertificateOwner {
         return null;
     }
 
-    public void addAdmin(User admin, User actor, boolean master) {
-        GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO org_admin SET orgid=?, memid=?, creator=?, master=?");
-        ps.setInt(1, getId());
-        ps.setInt(2, admin.getId());
-        ps.setInt(3, actor.getId());
-        ps.setString(4, master ? "y" : "n");
-        ps.execute();
+    public synchronized void addAdmin(User admin, User actor, boolean master) {
+        GigiPreparedStatement ps1 = DatabaseConnection.getInstance().prepare("SELECT 1 FROM org_admin WHERE orgid=? AND memid=? AND deleted is null");
+        ps1.setInt(1, getId());
+        ps1.setInt(2, admin.getId());
+        GigiResultSet result = ps1.executeQuery();
+        if (result.next()) {
+            return;
+        }
+        GigiPreparedStatement ps2 = DatabaseConnection.getInstance().prepare("INSERT INTO org_admin SET orgid=?, memid=?, creator=?, master=?");
+        ps2.setInt(1, getId());
+        ps2.setInt(2, admin.getId());
+        ps2.setInt(3, actor.getId());
+        ps2.setString(4, master ? "y" : "n");
+        ps2.execute();
     }
 
     public void removeAdmin(User admin, User actor) {