]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/admin/support/FindUserByDomainForm.java
upd: enforce a more strict Form call pattern.
[gigi.git] / src / org / cacert / gigi / pages / admin / support / FindUserByDomainForm.java
index 35fa8f2432dcd6b8c86ef766fdddb9951cceed01..9aae447036155ec8e4dd4e986b49f0db239591fe 100644 (file)
@@ -8,6 +8,8 @@ import javax.servlet.http.HttpServletRequest;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.CertificateOwner;
 import org.cacert.gigi.dbObjects.Domain;
+import org.cacert.gigi.dbObjects.Organisation;
+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.SprintfCommand;
@@ -15,6 +17,20 @@ import org.cacert.gigi.output.template.Template;
 
 public class FindUserByDomainForm extends Form {
 
+    public static class FindDomainResult extends SuccessMessageResult {
+
+        private final CertificateOwner owner;
+
+        public FindDomainResult(CertificateOwner owner) {
+            super(null);
+            this.owner = owner;
+        }
+
+        public CertificateOwner getOwner() {
+            return owner;
+        }
+    }
+
     private CertificateOwner res = null;
 
     private static final Template t = new Template(FindUserByDomainForm.class.getResource("FindUserByDomainForm.templ"));
@@ -24,7 +40,7 @@ public class FindUserByDomainForm extends Form {
     }
 
     @Override
-    public boolean submit(HttpServletRequest req) throws GigiApiException {
+    public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
         String request = req.getParameter("domain");
         Domain d = null;
         if (request.matches("#[0-9]+")) {
@@ -40,7 +56,13 @@ public class FindUserByDomainForm extends Form {
             throw new GigiApiException(SprintfCommand.createSimple("No personal domains found matching {0}", request));
         }
         res = d.getOwner();
-        return true;
+        if (res instanceof User) {
+            return new RedirectResult(SupportUserDetailsPage.PATH + res.getId() + "/");
+        } else if (res instanceof Organisation) {
+            return new RedirectResult("/support/domain/" + res.getId());
+        } else {
+            throw new PermamentFormException(new GigiApiException("Unknown owner type."));
+        }
     }
 
     @Override