1 package org.cacert.gigi.pages.admin.support;
3 import java.io.IOException;
4 import java.util.HashMap;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
10 import org.cacert.gigi.GigiApiException;
11 import org.cacert.gigi.dbObjects.Group;
12 import org.cacert.gigi.dbObjects.User;
13 import org.cacert.gigi.localisation.Language;
14 import org.cacert.gigi.output.template.Form;
15 import org.cacert.gigi.output.template.IterableDataset;
16 import org.cacert.gigi.pages.Page;
17 import org.cacert.gigi.util.AuthorizationContext;
19 public class FindUserPage extends Page {
21 public static final String PATH = "/support/find/user";
23 public FindUserPage(String title) {
28 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
29 HashMap<String, Object> vars = new HashMap<String, Object>();
30 vars.put("first", true);
31 new FindUserForm(req).output(resp.getWriter(), Page.getLanguage(req), vars);
35 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
36 FindUserForm form = Form.getForm(req, FindUserForm.class);
38 form.submit(resp.getWriter(), req);
39 final User[] users = form.getUsers();
40 if (users.length == 1) {
41 resp.sendRedirect(SupportUserDetailsPage.PATH + users[0].getId());
43 HashMap<String, Object> vars = new HashMap<String, Object>();
44 vars.put("first", false);
45 vars.put("usertable", new IterableDataset() {
50 public boolean next(Language l, Map<String, Object> vars) {
51 if (i == users.length) {
54 vars.put("usrid", users[i].getId());
55 vars.put("usermail", users[i].getEmail());
60 form.output(resp.getWriter(), getLanguage(req), vars);
62 } catch (GigiApiException e) {
63 e.format(resp.getWriter(), Page.getLanguage(req));
69 public boolean isPermitted(AuthorizationContext ac) {
70 return ac != null && ac.isInGroup(Group.SUPPORTER);