X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Forga%2FAffiliationForm.java;h=42682fedcf949371ac1e83e5b7ca5bdae05eadc4;hb=d7ca3ea303443dbe54163c06c2b097c8d14b6e6f;hp=e9ab64b4a56f631be54925c39b5e5514ba88875a;hpb=d4802b68c651a984f0b98a462ac1e7721aa50388;p=gigi.git diff --git a/src/org/cacert/gigi/pages/orga/AffiliationForm.java b/src/org/cacert/gigi/pages/orga/AffiliationForm.java index e9ab64b4..42682fed 100644 --- a/src/org/cacert/gigi/pages/orga/AffiliationForm.java +++ b/src/org/cacert/gigi/pages/orga/AffiliationForm.java @@ -12,7 +12,7 @@ import org.cacert.gigi.dbObjects.Organisation; import org.cacert.gigi.dbObjects.Organisation.Affiliation; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; -import org.cacert.gigi.output.Form; +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; @@ -29,9 +29,23 @@ public class AffiliationForm extends Form { } @Override - public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { - o.addAdmin(User.getByEmail(req.getParameter("email")), LoginPage.getUser(req), req.getParameter("master") != null); - return true; + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { + if (req.getParameter("del") != null) { + User toRemove = User.getByEmail(req.getParameter("del")); + if (toRemove != null) { + o.removeAdmin(toRemove, LoginPage.getUser(req)); + return new RedirectResult(ViewOrgPage.DEFAULT_PATH + "/" + o.getId()); + } + } else if (req.getParameter("do_affiliate") != null) { + User byEmail = User.getByEmail(req.getParameter("email")); + if (byEmail != null && byEmail.canAssure()) { + o.addAdmin(byEmail, LoginPage.getUser(req), req.getParameter("master") != null); + return new RedirectResult(ViewOrgPage.DEFAULT_PATH + "/" + o.getId()); + } else { + throw new GigiApiException("Requested user is not a RA Agent. We need a RA Agent here."); + } + } + throw new GigiApiException("No action could have been carried out."); } @Override @@ -43,18 +57,16 @@ 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") : ""); + vars.put("name", aff.getTarget().getPreferredName()); + vars.put("master", aff.isMaster() ? l.getTranslation("Master") : ""); + vars.put("e-mail", aff.getTarget().getEmail()); return true; } }); t.output(out, l, vars); } - - public Organisation getOrganisation() { - return o; - } }