X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Forga%2FViewOrgPage.java;h=49833e572b55a00baf600d3fa8cd130128905f47;hp=b2b39f1ac89631218502cdd1083cbef1d754e586;hb=d23d7a6fa9dc38c6193fea70017e0bff11257be5;hpb=4d9b0e8bdf122324cec9f3dd387c02d14c30877e diff --git a/src/org/cacert/gigi/pages/orga/ViewOrgPage.java b/src/org/cacert/gigi/pages/orga/ViewOrgPage.java index b2b39f1a..49833e57 100644 --- a/src/org/cacert/gigi/pages/orga/ViewOrgPage.java +++ b/src/org/cacert/gigi/pages/orga/ViewOrgPage.java @@ -18,6 +18,7 @@ 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; +import org.cacert.gigi.pages.account.domain.DomainManagementForm; import org.cacert.gigi.util.AuthorizationContext; public class ViewOrgPage extends Page { @@ -34,7 +35,7 @@ public class ViewOrgPage extends Page { @Override public boolean isPermitted(AuthorizationContext ac) { - return ac != null && (ac.isInGroup(CreateOrgPage.ORG_ASSURER) || ac.getActor().getOrganisations().size() != 0); + return ac != null && (ac.isInGroup(CreateOrgPage.ORG_ASSURER) || ac.getActor().getOrganisations(true).size() != 0); } @Override @@ -52,7 +53,23 @@ public class ViewOrgPage extends Page { resp.sendError(403, "Access denied"); return; } - Form.getForm(req, CreateOrgForm.class).submit(resp.getWriter(), req); + + if (req.getParameter("addDomain") != null) { + OrgDomainAddForm form = Form.getForm(req, OrgDomainAddForm.class); + if (form.submit(resp.getWriter(), req)) { + resp.sendRedirect(DEFAULT_PATH + "/" + form.getOrganisation().getId()); + } + } else if (req.getParameter("delete") != null) { + DomainManagementForm form = Form.getForm(req, DomainManagementForm.class); + if (form.submit(resp.getWriter(), req)) { + resp.sendRedirect(DEFAULT_PATH + "/" + form.getTarget().getId()); + } + } else { + CreateOrgForm form = Form.getForm(req, CreateOrgForm.class); + if (form.submit(resp.getWriter(), req)) { + resp.sendRedirect(DEFAULT_PATH + "/" + form.getResult().getId()); + } + } } } catch (GigiApiException e) { @@ -69,7 +86,7 @@ public class ViewOrgPage extends Page { if (idS.length() < DEFAULT_PATH.length() + 2) { final Organisation[] orgas = Organisation.getOrganisations(0, 30); HashMap map = new HashMap<>(); - final List myOrgs = u.getOrganisations(); + final List myOrgs = u.getOrganisations(true); final boolean orgAss = u.isInGroup(CreateOrgPage.ORG_ASSURER); if (orgAss) { map.put("orgas", makeOrgDataset(orgas)); @@ -81,16 +98,29 @@ public class ViewOrgPage extends Page { } idS = idS.substring(DEFAULT_PATH.length() + 1); int id = Integer.parseInt(idS); - Organisation o = Organisation.getById(id); + Organisation o; + try { + o = Organisation.getById(id); + } catch (IllegalArgumentException e) { + resp.sendError(404); + return; + } final List myOrgs = u.getOrganisations(); final boolean orgAss = u.isInGroup(CreateOrgPage.ORG_ASSURER); - if (o == null || ( !orgAss && !myOrgs.contains(o))) { + if ( !orgAss && !myOrgs.contains(o)) { resp.sendError(404); return; } HashMap vars = new HashMap<>(); - vars.put("editForm", new CreateOrgForm(req, o)); - vars.put("affForm", new AffiliationForm(req, o)); + if (orgAss) { + vars.put("editForm", new CreateOrgForm(req, o)); + vars.put("affForm", new AffiliationForm(req, o)); + vars.put("mgmDom", new DomainManagementForm(req, o, true)); + vars.put("addDom", new OrgDomainAddForm(req, o)); + } else { + vars.put("affForm", new AffiliationForm(req, o)); + vars.put("orgName", o.getName()); + } mainTempl.output(out, lang, vars); }