1 package org.cacert.gigi.pages.account.domain;
3 import java.io.IOException;
4 import java.util.HashMap;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
9 import org.cacert.gigi.GigiApiException;
10 import org.cacert.gigi.dbObjects.CertificateOwner;
11 import org.cacert.gigi.dbObjects.Domain;
12 import org.cacert.gigi.dbObjects.User;
13 import org.cacert.gigi.output.template.Form;
14 import org.cacert.gigi.pages.LoginPage;
15 import org.cacert.gigi.pages.Page;
17 public class DomainOverview extends Page {
19 public static final String PATH = "/account/domains/";
21 public DomainOverview() {
26 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
27 CertificateOwner u = LoginPage.getAuthorizationContext(req).getTarget();
28 String pi = req.getPathInfo();
29 if (pi.length() - PATH.length() > 0) {
30 int i = Integer.parseInt(pi.substring(PATH.length()));
33 d = Domain.getById(i);
34 } catch (IllegalArgumentException e) {
35 resp.getWriter().println(getLanguage(req).getTranslation("Access denied"));
38 if (u.getId() != d.getOwner().getId()) {
39 resp.getWriter().println(getLanguage(req).getTranslation("Access denied"));
42 new DomainPinglogForm(req, d).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
44 new PingConfigForm(req, d).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
45 } catch (GigiApiException e) {
46 e.format(resp.getWriter(), getLanguage(req));
52 DomainManagementForm domMan = new DomainManagementForm(req, u, false);
53 HashMap<String, Object> vars = new HashMap<>();
54 vars.put("domainman", domMan);
55 if (u instanceof User) {
56 DomainAddForm domAdd = new DomainAddForm(req, (User) u);
57 vars.put("domainadd", domAdd);
59 getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
60 } catch (GigiApiException e) {
61 e.format(resp.getWriter(), getLanguage(req));
66 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
67 String pi = req.getPathInfo();
68 if (pi.length() - PATH.length() > 0) {
70 if (req.getParameter("configId") != null) {
71 if ( !Form.getForm(req, DomainPinglogForm.class).submit(resp.getWriter(), req)) {
76 if ( !Form.getForm(req, PingConfigForm.class).submit(resp.getWriter(), req)) {
80 } catch (GigiApiException e) {
81 e.format(resp.getWriter(), getLanguage(req));
85 resp.sendRedirect(pi);
87 if (req.getParameter("adddomain") != null) {
88 DomainAddForm f = Form.getForm(req, DomainAddForm.class);
89 if (f.submit(resp.getWriter(), req)) {
90 resp.sendRedirect(PATH);
92 } else if (req.getParameter("delete") != null) {
93 DomainManagementForm f = Form.getForm(req, DomainManagementForm.class);
94 if (f.submitProtected(resp.getWriter(), req)) {
95 resp.sendRedirect(PATH);
98 super.doPost(req, resp);