From: Felix Dörre Date: Sun, 18 Jan 2015 16:41:49 +0000 (+0100) Subject: FIX: affiliation form with associated test cases. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=464967d119cb27b72323ffaff17e2e63edbd0de5 FIX: affiliation form with associated test cases. --- diff --git a/src/org/cacert/gigi/dbObjects/Organisation.java b/src/org/cacert/gigi/dbObjects/Organisation.java index f814a175..d96f95a1 100644 --- a/src/org/cacert/gigi/dbObjects/Organisation.java +++ b/src/org/cacert/gigi/dbObjects/Organisation.java @@ -161,18 +161,20 @@ public class Organisation extends CertificateOwner { return resu; } - public void update(String o, String c, String st, String l) { + public void update(String o, String c, String st, String l, String mail) { for (Certificate cert : getCertificates(false)) { if (cert.getStatus() == CertificateStatus.ISSUED) { cert.revoke(); } } - GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("UPDATE organisations SET name=?, state=?, province=?, city=?"); + GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("UPDATE organisations SET name=?, state=?, province=?, city=?, contactEmail=?"); ps.setString(1, o); ps.setString(2, c); ps.setString(3, st); ps.setString(4, l); + ps.setString(5, mail); ps.execute(); + email = mail; name = o; state = c; province = st; diff --git a/src/org/cacert/gigi/pages/orga/AffiliationForm.java b/src/org/cacert/gigi/pages/orga/AffiliationForm.java index a74bf50f..0191756f 100644 --- a/src/org/cacert/gigi/pages/orga/AffiliationForm.java +++ b/src/org/cacert/gigi/pages/orga/AffiliationForm.java @@ -16,6 +16,7 @@ import org.cacert.gigi.output.template.Form; import org.cacert.gigi.output.template.IterableDataset; import org.cacert.gigi.output.template.Template; import org.cacert.gigi.pages.LoginPage; +import org.cacert.gigi.pages.Page; public class AffiliationForm extends Form { @@ -34,15 +35,17 @@ public class AffiliationForm extends Form { User toRemove = User.getByEmail(req.getParameter("del")); if (toRemove != null) { o.removeAdmin(toRemove, LoginPage.getUser(req)); + return true; } - } - if (req.getParameter("do_affiliate") != null) { + } else if (req.getParameter("do_affiliate") != null) { User byEmail = User.getByEmail(req.getParameter("email")); if (byEmail != null) { o.addAdmin(byEmail, LoginPage.getUser(req), req.getParameter("master") != null); + return true; } } - return true; + out.println(Page.getLanguage(req).getTranslation("No action could have been carried out.")); + return false; } @Override @@ -54,8 +57,9 @@ public class AffiliationForm extends Form { @Override public boolean next(Language l, Map vars) { - if ( !iter.hasNext()) + if ( !iter.hasNext()) { return false; + } Affiliation aff = iter.next(); vars.put("name", aff.getTarget().getName()); vars.put("master", aff.isMaster() ? l.getTranslation("master") : ""); diff --git a/src/org/cacert/gigi/pages/orga/AffiliationForm.templ b/src/org/cacert/gigi/pages/orga/AffiliationForm.templ index 7a1c84fc..9cda4d85 100644 --- a/src/org/cacert/gigi/pages/orga/AffiliationForm.templ +++ b/src/org/cacert/gigi/pages/orga/AffiliationForm.templ @@ -17,6 +17,6 @@ - + diff --git a/src/org/cacert/gigi/pages/orga/CreateOrgForm.java b/src/org/cacert/gigi/pages/orga/CreateOrgForm.java index 902c745d..32a9ceb7 100644 --- a/src/org/cacert/gigi/pages/orga/CreateOrgForm.java +++ b/src/org/cacert/gigi/pages/orga/CreateOrgForm.java @@ -53,7 +53,7 @@ public class CreateOrgForm extends Form { l = req.getParameter("L"); email = req.getParameter("contact"); if (result != null) { - result.update(o, c, st, l); + result.update(o, c, st, l, email); return true; } Organisation ne = new Organisation(o, c, st, l, email, LoginPage.getUser(req)); @@ -71,6 +71,7 @@ public class CreateOrgForm extends Form { vars.put("C", c); vars.put("ST", st); vars.put("L", this.l); + vars.put("email", email); if (isEdit) { vars.put("edit", true); } diff --git a/src/org/cacert/gigi/pages/orga/CreateOrgForm.templ b/src/org/cacert/gigi/pages/orga/CreateOrgForm.templ index 787dec39..a2d1c436 100644 --- a/src/org/cacert/gigi/pages/orga/CreateOrgForm.templ +++ b/src/org/cacert/gigi/pages/orga/CreateOrgForm.templ @@ -13,7 +13,7 @@ : - + : diff --git a/src/org/cacert/gigi/pages/orga/ViewOrgPage.java b/src/org/cacert/gigi/pages/orga/ViewOrgPage.java index c4b65ca9..16c8bc53 100644 --- a/src/org/cacert/gigi/pages/orga/ViewOrgPage.java +++ b/src/org/cacert/gigi/pages/orga/ViewOrgPage.java @@ -43,10 +43,11 @@ public class ViewOrgPage extends Page { if ( !u.isInGroup(CreateOrgPage.ORG_ASSURER)) { return; } - if (req.getParameter("affiliate") != null) { + if (req.getParameter("do_affiliate") != null || req.getParameter("del") != null) { AffiliationForm form = Form.getForm(req, AffiliationForm.class); - form.submit(resp.getWriter(), req); - resp.sendRedirect(DEFAULT_PATH + "/" + form.getOrganisation().getId()); + if (form.submit(resp.getWriter(), req)) { + resp.sendRedirect(DEFAULT_PATH + "/" + form.getOrganisation().getId()); + } } else { Form.getForm(req, CreateOrgForm.class).submit(resp.getWriter(), req); } @@ -96,8 +97,9 @@ public class ViewOrgPage extends Page { @Override public boolean next(Language l, Map vars) { - if (count >= orgas.length) + if (count >= orgas.length) { return false; + } Organisation org = orgas[count++]; vars.put("id", Integer.toString(org.getId())); vars.put("name", org.getName()); diff --git a/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java b/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java index 45406b56..2623fa02 100644 --- a/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java +++ b/tests/org/cacert/gigi/pages/orga/TestOrgaManagement.java @@ -32,22 +32,23 @@ public class TestOrgaManagement extends ManagedTest { @Test public void testAdd() throws IOException { - executeBasicWebInteraction(session, CreateOrgPage.DEFAULT_PATH, "O=name&contact=&L=K%C3%B6ln&ST=%C3%9C%C3%96%C3%84%C3%9F&C=DE&comments=jkl%C3%B6loiuzfdfgjlh%C3%B6", 0); + executeBasicWebInteraction(session, CreateOrgPage.DEFAULT_PATH, "O=name&contact=mail&L=K%C3%B6ln&ST=%C3%9C%C3%96%C3%84%C3%9F&C=DE&comments=jkl%C3%B6loiuzfdfgjlh%C3%B6", 0); Organisation[] orgs = Organisation.getOrganisations(0, 30); assertEquals(1, orgs.length); + assertEquals("mail", orgs[0].getContactEmail()); assertEquals("name", orgs[0].getName()); assertEquals("Köln", orgs[0].getCity()); assertEquals("ÜÖÄß", orgs[0].getProvince()); User u2 = User.getById(createVerifiedUser("testworker", "testname", createUniqueName() + "@testdom.com", TEST_PASSWORD)); - executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "email=" + URLEncoder.encode(u2.getEmail(), "UTF-8") + "&affiliate=y&master=y", 1); + executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "email=" + URLEncoder.encode(u2.getEmail(), "UTF-8") + "&do_affiliate=y&master=y", 1); List allAdmins = orgs[0].getAllAdmins(); assertEquals(1, allAdmins.size()); Affiliation affiliation = allAdmins.get(0); assertSame(u2, affiliation.getTarget()); assertTrue(affiliation.isMaster()); - executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "email=" + URLEncoder.encode(u.getEmail(), "UTF-8") + "&affiliate=y", 1); + executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "email=" + URLEncoder.encode(u.getEmail(), "UTF-8") + "&do_affiliate=y", 1); allAdmins = orgs[0].getAllAdmins(); assertEquals(2, allAdmins.size()); Affiliation affiliation2 = allAdmins.get(0); @@ -57,10 +58,10 @@ public class TestOrgaManagement extends ManagedTest { assertSame(u.getId(), affiliation2.getTarget().getId()); assertFalse(affiliation2.isMaster()); - executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "del=" + URLEncoder.encode(u.getEmail(), "UTF-8") + "&email=&affiliate=y", 1); + executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "del=" + URLEncoder.encode(u.getEmail(), "UTF-8") + "&email=&do_affiliate=y", 1); assertEquals(1, orgs[0].getAllAdmins().size()); - executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "del=" + URLEncoder.encode(u2.getEmail(), "UTF-8") + "&email=&affiliate=y", 1); + executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "del=" + URLEncoder.encode(u2.getEmail(), "UTF-8") + "&email=&do_affiliate=y", 1); assertEquals(0, orgs[0].getAllAdmins().size()); executeBasicWebInteraction(session, ViewOrgPage.DEFAULT_PATH + "/" + orgs[0].getId(), "O=name1&contact=&L=K%C3%B6ln&ST=%C3%9C%C3%96%C3%84%C3%9F&C=DE&comments=jkl%C3%B6loiuzfdfgjlh%C3%B6", 0);