From 88047e0882509ea034f8f90317278ac1e6672362 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Mon, 22 Sep 2014 17:06:12 +0200 Subject: [PATCH] ADD: Denying of TTP requests --- .../cacert/gigi/pages/admin/TTPAdminForm.java | 46 +++++++++++++++++++ .../gigi/pages/admin/TTPAdminForm.templ | 7 +++ .../cacert/gigi/pages/admin/TTPAdminPage.java | 16 ++++++- .../gigi/pages/admin/TTPAdminPage.templ | 1 + 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 src/org/cacert/gigi/pages/admin/TTPAdminForm.java create mode 100644 src/org/cacert/gigi/pages/admin/TTPAdminForm.templ diff --git a/src/org/cacert/gigi/pages/admin/TTPAdminForm.java b/src/org/cacert/gigi/pages/admin/TTPAdminForm.java new file mode 100644 index 00000000..f3c9b76a --- /dev/null +++ b/src/org/cacert/gigi/pages/admin/TTPAdminForm.java @@ -0,0 +1,46 @@ +package org.cacert.gigi.pages.admin; + +import java.io.PrintWriter; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.User; +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.DateSelector; +import org.cacert.gigi.output.Form; +import org.cacert.gigi.output.template.Template; +import org.cacert.gigi.pages.LoginPage; + +public class TTPAdminForm extends Form { + + private static Template t = new Template(TTPAdminForm.class.getResource("TTPAdminForm.templ")); + + User u; + + User ttpAdmin; + + public TTPAdminForm(HttpServletRequest hsr, User u) { + super(hsr); + this.u = u; + ttpAdmin = LoginPage.getUser(hsr); + } + + @Override + public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { + if (req.getParameter("deny") != null) { + u.revokeGroup(ttpAdmin, TTPAdminPage.TTP_APPLICANT); + } + return false; + } + + @Override + protected void outputContent(PrintWriter out, Language l, Map vars) { + vars.put("name", u.getName()); + vars.put("email", u.getEmail()); + vars.put("DoB", DateSelector.getDateFormat().format(u.getDob())); + vars.put("uid", Integer.toString(u.getId())); + t.output(out, l, vars); + } +} diff --git a/src/org/cacert/gigi/pages/admin/TTPAdminForm.templ b/src/org/cacert/gigi/pages/admin/TTPAdminForm.templ new file mode 100644 index 00000000..1495d4a1 --- /dev/null +++ b/src/org/cacert/gigi/pages/admin/TTPAdminForm.templ @@ -0,0 +1,7 @@ + + + + + + +
\ No newline at end of file diff --git a/src/org/cacert/gigi/pages/admin/TTPAdminPage.java b/src/org/cacert/gigi/pages/admin/TTPAdminPage.java index 0d0f438e..d9c6740a 100644 --- a/src/org/cacert/gigi/pages/admin/TTPAdminPage.java +++ b/src/org/cacert/gigi/pages/admin/TTPAdminPage.java @@ -7,9 +7,11 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.Form; import org.cacert.gigi.output.template.IterableDataset; import org.cacert.gigi.pages.Page; @@ -17,22 +19,32 @@ public class TTPAdminPage extends Page { public static final String PATH = "/admin/ttp"; - private static final Group TTP_APPLICANT = Group.getByString("ttp-applicant"); + public static final Group TTP_APPLICANT = Group.getByString("ttp-applicant"); public TTPAdminPage() { super("TTP-Admin"); } + @Override + public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + try { + Form.getForm(req, TTPAdminForm.class).submit(resp.getWriter(), req); + } catch (GigiApiException e) { + e.format(resp.getWriter(), getLanguage(req)); + } + resp.sendRedirect(PATH); + } + @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String path = req.getPathInfo(); if (path != null && path.length() > PATH.length()) { int id = Integer.parseInt(path.substring(1 + PATH.length())); - resp.getWriter().println("processing: " + id); // TODO User u = User.getById(id); if ( !u.isInGroup(TTP_APPLICANT)) { return; } + new TTPAdminForm(req, u).output(resp.getWriter(), getLanguage(req), new HashMap()); return; } final User[] users = TTP_APPLICANT.getMembers(0, 30); diff --git a/src/org/cacert/gigi/pages/admin/TTPAdminPage.templ b/src/org/cacert/gigi/pages/admin/TTPAdminPage.templ index e80cea21..1e41bf85 100644 --- a/src/org/cacert/gigi/pages/admin/TTPAdminPage.templ +++ b/src/org/cacert/gigi/pages/admin/TTPAdminPage.templ @@ -1,4 +1,5 @@ + -- 2.39.2
Process