]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/account/domain/DomainManagementForm.java
Merge "Update notes about password security"
[gigi.git] / src / org / cacert / gigi / pages / account / domain / DomainManagementForm.java
1 package org.cacert.gigi.pages.account.domain;
2
3 import java.io.PrintWriter;
4 import java.util.Map;
5
6 import javax.servlet.http.HttpServletRequest;
7
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.localisation.Language;
12 import org.cacert.gigi.output.template.Form;
13 import org.cacert.gigi.output.template.IterableDataset;
14 import org.cacert.gigi.output.template.Template;
15 import org.cacert.gigi.pages.Page;
16
17 public class DomainManagementForm extends Form {
18
19     private static final Template t = new Template(DomainManagementForm.class.getResource("DomainManagementForm.templ"));
20
21     private CertificateOwner target;
22
23     private boolean foreign;
24
25     public DomainManagementForm(HttpServletRequest hsr, CertificateOwner target, boolean foreign) {
26         super(hsr);
27         this.target = target;
28         this.foreign = foreign;
29     }
30
31     @Override
32     public boolean submit(PrintWriter out, HttpServletRequest req) {
33         try {
34             String dels = req.getParameter("delete");
35
36             int delId = Integer.parseInt(dels);
37             Domain d = Domain.getById(delId);
38             if (d != null && d.getOwner() == target) {
39                 d.delete();
40             } else {
41                 throw new GigiApiException("Domain was not found.");
42             }
43         } catch (GigiApiException e) {
44             e.format(out, Page.getLanguage(req));
45             return false;
46         }
47         return true;
48     }
49
50     public CertificateOwner getTarget() {
51         return target;
52     }
53
54     @Override
55     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
56         final Domain[] doms = target.getDomains();
57         IterableDataset dts = new IterableDataset() {
58
59             private int point = 0;
60
61             @Override
62             public boolean next(Language l, Map<String, Object> vars) {
63                 if (point >= doms.length) {
64                     return false;
65                 }
66                 Domain domain = doms[point];
67                 vars.put("id", domain.getId());
68                 if ( !foreign) {
69                     vars.put("domainhref", DomainOverview.PATH + domain.getId());
70                 }
71                 vars.put("domain", domain.getSuffix());
72                 vars.put("status", l.getTranslation(domain.isVerified() ? "verified" : "not verified"));
73                 point++;
74                 return true;
75             }
76         };
77         vars.put("domains", dts);
78         t.output(out, l, vars);
79     }
80 }