]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/DomainOverview.java
ADD: output pinglog, test DNS and email ping.
[gigi.git] / src / org / cacert / gigi / pages / account / DomainOverview.java
1 package org.cacert.gigi.pages.account;
2
3 import java.io.IOException;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import org.cacert.gigi.Domain;
11 import org.cacert.gigi.GigiApiException;
12 import org.cacert.gigi.User;
13 import org.cacert.gigi.localisation.Language;
14 import org.cacert.gigi.output.Form;
15 import org.cacert.gigi.output.template.IterableDataset;
16 import org.cacert.gigi.output.template.Template;
17 import org.cacert.gigi.pages.Page;
18
19 public class DomainOverview extends Page {
20
21     public static final String PATH = "/account/domains/";
22
23     private Template domainDetails = new Template(DomainOverview.class.getResource("DomainDetails.templ"));
24
25     public DomainOverview(String title) {
26         super(title);
27     }
28
29     @Override
30     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
31         User u = getUser(req);
32         String pi = req.getPathInfo();
33         if (pi.length() - PATH.length() > 0) {
34             int i = Integer.parseInt(pi.substring(PATH.length()));
35             Domain d = Domain.getById(i);
36             if (u.getId() != d.getOwner().getId()) {
37                 System.out.println(u.getId());
38                 System.out.println(d.getOwner().getId());
39                 return;
40             }
41             try {
42                 final String[][] pings = d.getPings();
43                 HashMap<String, Object> vars = new HashMap<>();
44                 vars.put("domainname", d.getSuffix());
45                 vars.put("pings", new IterableDataset() {
46
47                     int counter = 0;
48
49                     @Override
50                     public boolean next(Language l, Map<String, Object> vars) {
51                         if (counter >= pings.length) {
52                             return false;
53                         }
54                         vars.put("state", pings[counter][0]);
55                         vars.put("type", pings[counter][1]);
56                         vars.put("config", pings[counter][2]);
57                         String ping3 = pings[counter][3];
58                         if (ping3 == null) {
59                             vars.put("result", "");
60                         } else {
61                             vars.put("result", ping3);
62                         }
63                         counter++;
64                         return true;
65                     }
66                 });
67                 domainDetails.output(resp.getWriter(), getLanguage(req), vars);
68                 return;
69             } catch (GigiApiException e) {
70                 e.format(resp.getWriter(), getLanguage(req));
71             }
72
73         }
74         DomainManagementForm domMan = new DomainManagementForm(req, u);
75         DomainAddForm domAdd = new DomainAddForm(req, u);
76         HashMap<String, Object> vars = new HashMap<>();
77         vars.put("doms", u.getDomains());
78         vars.put("domainman", domMan);
79         vars.put("domainadd", domAdd);
80         getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
81     }
82
83     @Override
84     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
85         if (req.getParameter("adddomain") != null) {
86             DomainAddForm f = Form.getForm(req, DomainAddForm.class);
87             if (f.submit(resp.getWriter(), req)) {
88                 resp.sendRedirect(PATH);
89             }
90         } else if (req.getParameter("domdel") != null) {
91             DomainManagementForm f = Form.getForm(req, DomainManagementForm.class);
92             if (f.submit(resp.getWriter(), req)) {
93                 resp.sendRedirect(PATH);
94             }
95         }
96         super.doPost(req, resp);
97     }
98 }