]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/admin/support/FindUserPage.java
upd: change the find user routine to search for all email addresses
[gigi.git] / src / org / cacert / gigi / pages / admin / support / FindUserPage.java
index 65d164d4dadb377e305e274cb74cde4bdc34c00e..02e2889bfa77bee906783a8020d6f3481efd4d2a 100644 (file)
@@ -8,18 +8,19 @@ 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.dbObjects.EmailAddress;
 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;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class FindUserPage extends Page {
 
     public static final String PATH = "/support/find/user";
 
-    public FindUserPage(String title) {
-        super(title);
+    public FindUserPage() {
+        super("Find User");
     }
 
     @Override
@@ -34,9 +35,9 @@ public class FindUserPage extends Page {
         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());
+            final EmailAddress[] emails = form.getEmails();
+            if (emails.length == 1) {
+                resp.sendRedirect(SupportUserDetailsPage.PATH + emails[0].getOwner().getId());
             } else {
                 HashMap<String, Object> vars = new HashMap<String, Object>();
                 vars.put("first", false);
@@ -46,11 +47,11 @@ public class FindUserPage extends Page {
 
                     @Override
                     public boolean next(Language l, Map<String, Object> vars) {
-                        if (i == users.length) {
+                        if (i == emails.length) {
                             return false;
                         }
-                        vars.put("usrid", users[i].getId());
-                        vars.put("usermail", users[i].getEmail());
+                        vars.put("usrid", emails[i].getOwner().getId());
+                        vars.put("usermail", emails[i].getAddress());
                         i++;
                         return true;
                     }
@@ -63,4 +64,9 @@ public class FindUserPage extends Page {
         }
     }
 
+    @Override
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.canSupport();
+    }
+
 }