X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FOrganisation.java;h=7380381a50932e4efb08e4f42db59ee1cd279c7c;hb=a1d3a796a20e7e2f11364b143ec639d5defa8b5f;hp=66de62d9500d12a4e5c8b00fd5cdb59ed47dcf8f;hpb=3cd0af0244aa6ca22fdc2884e656b22095460858;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/Organisation.java b/src/org/cacert/gigi/dbObjects/Organisation.java index 66de62d9..7380381a 100644 --- a/src/org/cacert/gigi/dbObjects/Organisation.java +++ b/src/org/cacert/gigi/dbObjects/Organisation.java @@ -56,24 +56,32 @@ public class Organisation extends CertificateOwner { private String email; - public Organisation(String name, String state, String province, String city, String email, User creator) throws GigiApiException { + private String optionalName; + + private String postalAddress; + + public Organisation(String name, String state, String province, String city, String email, String optionalName, String postalAddress, User creator) throws GigiApiException { if ( !creator.isInGroup(Group.ORGASSURER)) { - throw new GigiApiException("Only org-assurers may create organisations."); + throw new GigiApiException("Only Organisation RA Agents may create organisations."); } this.name = name; this.state = state; this.province = province; this.city = city; this.email = email; + this.optionalName = optionalName; + this.postalAddress = postalAddress; int id = getId(); - try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, contactEmail=?, creator=?")) { + try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, contactEmail=?, optional_name=?, postal_address=?, creator=?")) { ps.setInt(1, id); ps.setString(2, name); ps.setString(3, state); ps.setString(4, province); ps.setString(5, city); ps.setString(6, email); - ps.setInt(7, creator.getId()); + ps.setString(7, optionalName); + ps.setString(8, postalAddress); + ps.setInt(9, creator.getId()); synchronized (Organisation.class) { ps.execute(); } @@ -87,6 +95,8 @@ public class Organisation extends CertificateOwner { province = rs.getString("province"); city = rs.getString("city"); email = rs.getString("contactEmail"); + optionalName = rs.getString("optional_name"); + postalAddress = rs.getString("postal_address"); } public String getName() { @@ -109,6 +119,14 @@ public class Organisation extends CertificateOwner { return email; } + public String getOptionalName() { + return optionalName; + } + + public String getPostalAddress() { + return postalAddress; + } + public static synchronized Organisation getById(int id) { CertificateOwner co = CertificateOwner.getById(id); if (co instanceof Organisation) { @@ -119,10 +137,10 @@ public class Organisation extends CertificateOwner { public synchronized void addAdmin(User admin, User actor, boolean master) throws GigiApiException { if ( !admin.canAssure()) { - throw new GigiApiException("Cannot add non-assurer."); + throw new GigiApiException("Cannot add person who is not RA Agent."); } if ( !actor.isInGroup(Group.ORGASSURER) && !isMaster(actor)) { - throw new GigiApiException("Only org assurer or master-admin may add admins to an organisation."); + throw new GigiApiException("Only Organisation RA Agents or Organisation Administrators may add admins to an organisation."); } try (GigiPreparedStatement ps1 = new GigiPreparedStatement("SELECT 1 FROM `org_admin` WHERE `orgid`=? AND `memid`=? AND `deleted` IS NULL")) { ps1.setInt(1, getId()); @@ -143,7 +161,7 @@ public class Organisation extends CertificateOwner { public void removeAdmin(User admin, User actor) throws GigiApiException { if ( !actor.isInGroup(Group.ORGASSURER) && !isMaster(actor)) { - throw new GigiApiException("Only org assurer or master-admin may delete admins from an organisation."); + throw new GigiApiException("Only Organisation RA Agents or Organisation Administrators may delete admins from an organisation."); } try (GigiPreparedStatement ps = new GigiPreparedStatement("UPDATE org_admin SET deleter=?, deleted=NOW() WHERE orgid=? AND memid=?")) { ps.setInt(1, actor.getId()); @@ -183,27 +201,39 @@ public class Organisation extends CertificateOwner { } } - public void update(String o, String c, String st, String l, String mail) { + public void updateCertData(String o, String c, String st, String l) { for (Certificate cert : getCertificates(false)) { if (cert.getStatus() == CertificateStatus.ISSUED) { cert.revoke(); } } - try (GigiPreparedStatement ps = new GigiPreparedStatement("UPDATE `organisations` SET `name`=?, `state`=?, `province`=?, `city`=?, `contactEmail`=?")) { + try (GigiPreparedStatement ps = new GigiPreparedStatement("UPDATE `organisations` SET `name`=?, `state`=?, `province`=?, `city`=? WHERE `id`=?")) { ps.setString(1, o); ps.setString(2, c); ps.setString(3, st); ps.setString(4, l); - ps.setString(5, mail); - ps.execute(); + ps.setInt(5, getId()); + ps.executeUpdate(); } - email = mail; name = o; state = c; province = st; city = l; } + public void updateOrgData(String mail, String o_name, String p_address) { + try (GigiPreparedStatement ps = new GigiPreparedStatement("UPDATE `organisations` SET `contactEmail`=?, `optional_name`=?, `postal_address`=? WHERE `id`=?")) { + ps.setString(1, mail); + ps.setString(2, o_name); + ps.setString(3, p_address); + ps.setInt(4, getId()); + ps.executeUpdate(); + } + email = mail; + optionalName = o_name; + postalAddress = p_address; + } + public boolean isMaster(User u) { for (Affiliation i : getAllAdmins()) { if (i.isMaster() && i.getTarget() == u) { @@ -218,7 +248,9 @@ public class Organisation extends CertificateOwner { return isValidDomain(email.split("@", 2)[1]); } + public static final String SELF_ORG_NAME = "SomeCA"; + public boolean isSelfOrganisation() { - return "CAcert".equals(getName()); + return SELF_ORG_NAME.equals(getName()); } }