]> WPIA git - gigi.git/commitdiff
ADD: Denying of TTP requests
authorFelix Dörre <felix@dogcraft.de>
Mon, 22 Sep 2014 15:06:12 +0000 (17:06 +0200)
committerFelix Dörre <felix@dogcraft.de>
Mon, 22 Sep 2014 15:06:12 +0000 (17:06 +0200)
src/org/cacert/gigi/pages/admin/TTPAdminForm.java [new file with mode: 0644]
src/org/cacert/gigi/pages/admin/TTPAdminForm.templ [new file with mode: 0644]
src/org/cacert/gigi/pages/admin/TTPAdminPage.java
src/org/cacert/gigi/pages/admin/TTPAdminPage.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 (file)
index 0000000..f3c9b76
--- /dev/null
@@ -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<String, Object> 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 (file)
index 0000000..1495d4a
--- /dev/null
@@ -0,0 +1,7 @@
+<input type="hidden" name="uid" value="<?=$uid?>"/>
+<table class="dataTable wrapper">
+<tr><td><?=_Name?></td><td><?=$name?></td></tr>
+<tr><td><?=_Email?></td><td><?=$email?></td></tr>
+<tr><td><?=_Date of Birth?></td><td><?=$DoB?></td></tr>
+<tr><td colspan="2"><input type="submit" name="deny" value="<?=_Deny Request?>"></td></tr>
+</table>
\ No newline at end of file
index 0d0f438e65e3d4f102c2155e28637b46941d422a..d9c6740a313fe696793435357c7dad5340f7ca99 100644 (file)
@@ -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<String, Object>());
             return;
         }
         final User[] users = TTP_APPLICANT.getMembers(0, 30);
index e80cea2199d3396c890af1b40fd947f57e89d0d6..1e41bf855a6a02954f0d2baa81745380880b6afc 100644 (file)
@@ -1,4 +1,5 @@
 <table class="wrapper dataTable">
+<tr><th><?=_Name?></th><th><?=_Email?></th><th></th></tr>
 <? foreach($users) { ?>
 <tr><td><?=$name?></td><td><?=$email?></td><td><a href="/admin/ttp/<?=$id?>">Process</a></td></tr>
 <? } ?>