X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FFindUserPage.java;fp=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2Fsupport%2FFindUserPage.java;h=65d164d4dadb377e305e274cb74cde4bdc34c00e;hb=c90d9f8e3d962c3bd25c720c4eb04631af8665ed;hp=0000000000000000000000000000000000000000;hpb=8fa95a3f5ae14112b2acffdd010c645cd250d61e;p=gigi.git diff --git a/src/org/cacert/gigi/pages/admin/support/FindUserPage.java b/src/org/cacert/gigi/pages/admin/support/FindUserPage.java new file mode 100644 index 00000000..65d164d4 --- /dev/null +++ b/src/org/cacert/gigi/pages/admin/support/FindUserPage.java @@ -0,0 +1,66 @@ +package org.cacert.gigi.pages.admin.support; + +import java.io.IOException; +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.User; +import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.template.Form; +import org.cacert.gigi.output.template.IterableDataset; +import org.cacert.gigi.pages.Page; + +public class FindUserPage extends Page { + + public static final String PATH = "/support/find/user"; + + public FindUserPage(String title) { + super(title); + } + + @Override + public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + HashMap vars = new HashMap(); + vars.put("first", true); + new FindUserForm(req).output(resp.getWriter(), Page.getLanguage(req), vars); + } + + @Override + public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + FindUserForm form = Form.getForm(req, FindUserForm.class); + try { + form.submit(resp.getWriter(), req); + final User[] users = form.getUsers(); + if (users.length == 1) { + resp.sendRedirect(SupportUserDetailsPage.PATH + users[0].getId()); + } else { + HashMap vars = new HashMap(); + vars.put("first", false); + vars.put("usertable", new IterableDataset() { + + int i = 0; + + @Override + public boolean next(Language l, Map vars) { + if (i == users.length) { + return false; + } + vars.put("usrid", users[i].getId()); + vars.put("usermail", users[i].getEmail()); + i++; + return true; + } + }); + form.output(resp.getWriter(), getLanguage(req), vars); + } + } catch (GigiApiException e) { + e.format(resp.getWriter(), Page.getLanguage(req)); + doGet(req, resp); + } + } + +}