1 package org.cacert.gigi.dbObjects;
3 import java.util.ArrayList;
6 import org.cacert.gigi.database.DatabaseConnection;
7 import org.cacert.gigi.database.GigiPreparedStatement;
8 import org.cacert.gigi.database.GigiResultSet;
10 public class Organisation extends CertificateOwner {
12 private final String name;
14 private final String state;
16 private final String province;
18 private final String city;
20 public Organisation(String name, String state, String province, String city, User creator) {
23 this.province = province;
25 int id = super.insert();
26 GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, creator=?");
28 ps.setString(2, name);
29 ps.setString(3, state);
30 ps.setString(4, province);
31 ps.setString(5, city);
32 ps.setInt(6, creator.getId());
33 synchronized (Organisation.class) {
39 protected Organisation(GigiResultSet rs) {
40 name = rs.getString("name");
41 state = rs.getString("state");
42 province = rs.getString("province");
43 city = rs.getString("city");
46 public String getName() {
50 public String getState() {
54 public String getProvince() {
58 public String getCity() {
62 public static synchronized Organisation getById(int id) {
63 CertificateOwner co = CertificateOwner.getById(id);
64 if (co instanceof Organisation) {
65 return (Organisation) co;
70 public void addAdmin(User admin, User actor) {
71 GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO org_admin SET orgid=?, memid=?, creator=?");
72 ps.setInt(1, getId());
73 ps.setInt(2, admin.getId());
74 ps.setInt(3, actor.getId());
78 public void removeAdmin(User admin, User actor) {
79 GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("UPDATE org_admin SET deleter=?, deleted=NOW() WHERE orgid=? AND memid=?");
80 ps.setInt(1, actor.getId());
81 ps.setInt(2, getId());
82 ps.setInt(3, admin.getId());
86 public List<User> getAllAdmins() {
87 GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT memid FROM org_admin WHERE orgid=? AND deleted is null");
88 ps.setInt(1, getId());
89 GigiResultSet rs = ps.executeQuery();
91 ArrayList<User> al = new ArrayList<>(rs.getRow());
94 al.add(User.getById(rs.getInt(1)));