1 package org.cacert.gigi.pages.admin.support;
3 import java.io.PrintWriter;
6 import javax.servlet.http.HttpServletRequest;
8 import org.cacert.gigi.GigiApiException;
9 import org.cacert.gigi.dbObjects.CertificateOwner;
10 import org.cacert.gigi.dbObjects.Domain;
11 import org.cacert.gigi.dbObjects.Organisation;
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.SprintfCommand;
16 import org.cacert.gigi.output.template.Template;
18 public class FindUserByDomainForm extends Form {
20 public static class FindDomainResult extends SuccessMessageResult {
22 private final CertificateOwner owner;
24 public FindDomainResult(CertificateOwner owner) {
29 public CertificateOwner getOwner() {
34 private CertificateOwner res = null;
36 private static final Template t = new Template(FindUserByDomainForm.class.getResource("FindUserByDomainForm.templ"));
38 public FindUserByDomainForm(HttpServletRequest hsr) {
43 public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
44 String request = req.getParameter("domain");
46 if (request.matches("#[0-9]+")) {
48 d = Domain.getById(Integer.parseInt(request.substring(1)));
49 } catch (IllegalArgumentException e) {
50 throw new GigiApiException(SprintfCommand.createSimple("No personal domains found matching the id {0}", request.substring(1)));
53 d = Domain.searchDomain(request);
56 throw new GigiApiException(SprintfCommand.createSimple("No personal domains found matching {0}", request));
59 if (res instanceof User) {
60 return new RedirectResult(SupportUserDetailsPage.PATH + res.getId() + "/");
61 } else if (res instanceof Organisation) {
62 return new RedirectResult("/support/domain/" + res.getId());
64 throw new PermamentFormException(new GigiApiException("Unknown owner type."));
69 protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
70 t.output(out, l, vars);
73 public CertificateOwner getRes() {