]> WPIA git - gigi.git/blob - src/club/wpia/gigi/pages/account/domain/EditDomain.java
upd: get default variables into outputables for error messages
[gigi.git] / src / club / wpia / gigi / pages / account / domain / EditDomain.java
1 package club.wpia.gigi.pages.account.domain;
2
3 import java.io.IOException;
4
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
7
8 import club.wpia.gigi.GigiApiException;
9 import club.wpia.gigi.dbObjects.CertificateOwner;
10 import club.wpia.gigi.dbObjects.Domain;
11 import club.wpia.gigi.output.template.Form;
12 import club.wpia.gigi.output.template.Form.CSRFException;
13 import club.wpia.gigi.pages.LoginPage;
14 import club.wpia.gigi.pages.ManagedMultiFormPage;
15
16 public class EditDomain extends ManagedMultiFormPage {
17
18     public static final String PATH = "/account/domains/";
19
20     public EditDomain() {
21         super("Domain");
22     }
23
24     @Override
25     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
26         CertificateOwner u = LoginPage.getAuthorizationContext(req).getTarget();
27         String pi = req.getPathInfo();
28         if (pi.length() - PATH.length() <= 0) {
29             return;
30         }
31         Form.printFormErrors(req, resp.getWriter());
32         int i = Integer.parseInt(pi.substring(PATH.length()));
33         Domain d;
34         try {
35             d = Domain.getById(i);
36         } catch (IllegalArgumentException e) {
37             resp.getWriter().println(getLanguage(req).getTranslation("Access denied"));
38             return;
39         }
40         if (d == null || u.getId() != d.getOwner().getId()) {
41             resp.getWriter().println(getLanguage(req).getTranslation("Access denied"));
42             return;
43         }
44         new DomainPinglogForm(req, d).output(resp.getWriter(), getLanguage(req), getDefaultVars(req));
45         try {
46             new PingConfigForm(req, d).output(resp.getWriter(), getLanguage(req), getDefaultVars(req));
47         } catch (GigiApiException e) {
48             e.format(resp.getWriter(), getLanguage(req), getDefaultVars(req));
49         }
50
51     }
52
53     @Override
54     public Form getForm(HttpServletRequest req) throws CSRFException {
55         String pi = req.getPathInfo();
56         if (pi.length() - PATH.length() <= 0) {
57             return null;
58         }
59         if (req.getParameter("configId") != null) {
60             return Form.getForm(req, DomainPinglogForm.class);
61         } else {
62             return Form.getForm(req, PingConfigForm.class);
63         }
64     }
65
66 }