X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2FTTPAdminPage.java;h=8d9e47171d8ce7523de2ee84c44e79672c326207;hb=d46bd087fcf633dc2bccecbce63108011da33871;hp=90c2918cd0a10504b279ed844cd28ae87c7d0f98;hpb=d27db93cff33d510bff61a16d595b918af1735df;p=gigi.git diff --git a/src/org/cacert/gigi/pages/admin/TTPAdminPage.java b/src/org/cacert/gigi/pages/admin/TTPAdminPage.java index 90c2918c..8d9e4717 100644 --- a/src/org/cacert/gigi/pages/admin/TTPAdminPage.java +++ b/src/org/cacert/gigi/pages/admin/TTPAdminPage.java @@ -1,19 +1,22 @@ package org.cacert.gigi.pages.admin; import java.io.IOException; +import java.util.Arrays; import java.util.HashMap; 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.Form; import org.cacert.gigi.output.template.IterableDataset; +import org.cacert.gigi.output.template.SprintfCommand; import org.cacert.gigi.pages.Page; +import org.cacert.gigi.pages.error.PageNotFound; +import org.cacert.gigi.util.AuthorizationContext; public class TTPAdminPage extends Page { @@ -27,12 +30,9 @@ public class TTPAdminPage extends Page { @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)); + if (Form.getForm(req, TTPAdminForm.class).submitProtected(resp.getWriter(), req)) { + resp.sendRedirect(PATH); } - resp.sendRedirect(PATH); } private static final int PAGE_LEN = 30; @@ -40,10 +40,13 @@ public class TTPAdminPage extends Page { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String path = req.getPathInfo(); - if (path != null && path.length() > PATH.length()) { + if (path != null && path.length() > PATH.length() + 1) { int id = Integer.parseInt(path.substring(1 + PATH.length())); User u = User.getById(id); - if ( !u.isInGroup(TTP_APPLICANT)) { + if (u == null || !u.isInGroup(TTP_APPLICANT)) { + SprintfCommand command = new SprintfCommand("The TTP-request is not available anymore. You might want to go {0}back{1}.", Arrays.asList("!'", "!'")); + req.setAttribute(PageNotFound.MESSAGE_ATTRIBUTE, command); + resp.sendError(404); return; } new TTPAdminForm(req, u).output(resp.getWriter(), getLanguage(req), new HashMap()); @@ -67,7 +70,7 @@ public class TTPAdminPage extends Page { return false; } vars.put("id", Integer.toString(users[i].getId())); - vars.put("name", users[i].getName().toString()); + vars.put("name", users[i].getPreferredName().toString()); vars.put("email", users[i].getEmail()); i++; @@ -81,7 +84,7 @@ public class TTPAdminPage extends Page { } @Override - public boolean isPermitted(User u) { - return u != null && u.isInGroup(Group.getByString("ttp-assurer")); + public boolean isPermitted(AuthorizationContext ac) { + return ac != null && ac.isInGroup(Group.getByString("ttp-assurer")); } }