From: Felix Dörre Date: Sun, 11 Jan 2015 14:04:43 +0000 (+0100) Subject: upd: store orga contact mail. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=346185795ad8dd3dbfeb417d2dccb69a39af64be upd: store orga contact mail. --- diff --git a/doc/tableStructure.sql b/doc/tableStructure.sql index 7ff5a615..7ff0769c 100644 --- a/doc/tableStructure.sql +++ b/doc/tableStructure.sql @@ -40,6 +40,7 @@ CREATE TABLE IF NOT EXISTS `organisations` ( `state` varchar(2) NOT NULL, `province` varchar(100) NOT NULL, `city` varchar(100) NOT NULL, + `contactEmail` varchar(100) NOT NULL, `creator` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -143,6 +144,7 @@ CREATE TABLE `certs` ( `codesign` tinyint(1) NOT NULL DEFAULT '0', `md` enum('md5','sha1','sha256','sha512') NOT NULL DEFAULT 'sha512', `profile` int(3) NOT NULL, + `caid` int(3) NULL DEFAULT NULL, `csr_name` varchar(255) NOT NULL DEFAULT '', `csr_type` enum('CSR', 'SPKAC') NOT NULL, @@ -221,7 +223,16 @@ CREATE TABLE `subjectAlternativeNames` ( `type` enum('email','DNS') NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; - +DROP TABLE IF EXISTS `cacerts`; +CREATE TABLE `cacerts` ( + `id` int(3) NOT NULL AUTO_INCREMENT, + `keyname` varchar(60) NOT NULL, + `subroot` int(2) NOT NULL, + `validFrom` datetime NULL DEFAULT NULL, + `validTo` datetime NULL DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE (`keyname`) +) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `jobs`; @@ -330,4 +341,4 @@ CREATE TABLE `adminLog` ( `type` varchar(100) NOT NULL DEFAULT '', `information` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`when`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/src/org/cacert/gigi/dbObjects/Organisation.java b/src/org/cacert/gigi/dbObjects/Organisation.java index 407fcb59..4c23488e 100644 --- a/src/org/cacert/gigi/dbObjects/Organisation.java +++ b/src/org/cacert/gigi/dbObjects/Organisation.java @@ -49,19 +49,23 @@ public class Organisation extends CertificateOwner { private String city; - public Organisation(String name, String state, String province, String city, User creator) { + private String email; + + public Organisation(String name, String state, String province, String city, String email, User creator) { this.name = name; this.state = state; this.province = province; this.city = city; + this.email = email; int id = super.insert(); - GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, creator=?"); + GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO organisations SET id=?, name=?, state=?, province=?, city=?, contactEmail=?, creator=?"); ps.setInt(1, id); ps.setString(2, name); ps.setString(3, state); ps.setString(4, province); ps.setString(5, city); - ps.setInt(6, creator.getId()); + ps.setString(6, email); + ps.setInt(7, creator.getId()); synchronized (Organisation.class) { ps.execute(); } @@ -74,6 +78,7 @@ public class Organisation extends CertificateOwner { state = rs.getString("state"); province = rs.getString("province"); city = rs.getString("city"); + city = rs.getString("contactEmail"); } public String getName() { @@ -92,6 +97,10 @@ public class Organisation extends CertificateOwner { return city; } + public String getContactEmail() { + return email; + } + public static synchronized Organisation getById(int id) { CertificateOwner co = CertificateOwner.getById(id); if (co instanceof Organisation) { diff --git a/src/org/cacert/gigi/pages/orga/CreateOrgForm.java b/src/org/cacert/gigi/pages/orga/CreateOrgForm.java index 27f7dbcf..902c745d 100644 --- a/src/org/cacert/gigi/pages/orga/CreateOrgForm.java +++ b/src/org/cacert/gigi/pages/orga/CreateOrgForm.java @@ -26,6 +26,8 @@ public class CreateOrgForm extends Form { private String l = ""; + private String email = ""; + private boolean isEdit = false; public CreateOrgForm(HttpServletRequest hsr) { @@ -40,6 +42,7 @@ public class CreateOrgForm extends Form { c = t.getState(); st = t.getProvince(); l = t.getCity(); + email = t.getContactEmail(); } @Override @@ -48,11 +51,12 @@ public class CreateOrgForm extends Form { c = req.getParameter("C"); st = req.getParameter("ST"); l = req.getParameter("L"); + email = req.getParameter("contact"); if (result != null) { result.update(o, c, st, l); return true; } - Organisation ne = new Organisation(o, c, st, l, LoginPage.getUser(req)); + Organisation ne = new Organisation(o, c, st, l, email, LoginPage.getUser(req)); result = ne; return true; } diff --git a/tests/org/cacert/gigi/TestOrga.java b/tests/org/cacert/gigi/TestOrga.java index 72e41efd..d6143718 100644 --- a/tests/org/cacert/gigi/TestOrga.java +++ b/tests/org/cacert/gigi/TestOrga.java @@ -15,7 +15,7 @@ public class TestOrga extends ManagedTest { User u2 = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "@email.org", TEST_PASSWORD)); User u3 = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "@email.org", TEST_PASSWORD)); User u4 = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "@email.org", TEST_PASSWORD)); - Organisation o1 = new Organisation("name", "ST", "prov", "city", u1); + Organisation o1 = new Organisation("name", "ST", "prov", "city", "email", u1); assertEquals(0, o1.getAllAdmins().size()); o1.addAdmin(u2, u1, false); assertEquals(1, o1.getAllAdmins().size()); diff --git a/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java b/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java index bd0b8f4b..45406b56 100644 --- a/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java +++ b/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java @@ -72,8 +72,8 @@ public class TestOrgaManagement extends ManagedTest { @Test public void testNonAssurerSeeOnlyOwn() throws IOException { User u2 = User.getById(createVerifiedUser("testworker", "testname", createUniqueName() + "@testdom.com", TEST_PASSWORD)); - Organisation o1 = new Organisation("name21", "DE", "sder", "Rostov", u); - Organisation o2 = new Organisation("name12", "DE", "sder", "Rostov", u); + Organisation o1 = new Organisation("name21", "DE", "sder", "Rostov", "email", u); + Organisation o2 = new Organisation("name12", "DE", "sder", "Rostov", "email", u); o1.addAdmin(u2, u2, false); String session2 = login(u2.getEmail(), TEST_PASSWORD);