]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/orga/ViewOrgPage.java
WIP orga-things
[gigi.git] / src / org / cacert / gigi / pages / orga / ViewOrgPage.java
1 package org.cacert.gigi.pages.orga;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.util.HashMap;
6 import java.util.Map;
7
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10
11 import org.cacert.gigi.GigiApiException;
12 import org.cacert.gigi.dbObjects.Organisation;
13 import org.cacert.gigi.dbObjects.User;
14 import org.cacert.gigi.localisation.Language;
15 import org.cacert.gigi.output.Form;
16 import org.cacert.gigi.output.template.IterableDataset;
17 import org.cacert.gigi.output.template.Template;
18 import org.cacert.gigi.pages.Page;
19
20 public class ViewOrgPage extends Page {
21
22     private final Template orgas = new Template(ViewOrgPage.class.getResource("ViewOrgs.templ"));
23
24     public static final String DEFAULT_PATH = "/orga";
25
26     public ViewOrgPage() {
27         super("View Organisation");
28     }
29
30     @Override
31     public boolean isPermitted(User u) {
32         return u != null && u.isInGroup(CreateOrgPage.ORG_ASSURER);
33     }
34
35     @Override
36     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
37         try {
38             Form.getForm(req, CreateOrgForm.class).submit(resp.getWriter(), req);
39         } catch (GigiApiException e) {
40             e.format(resp.getWriter(), getLanguage(req));
41         }
42     }
43
44     @Override
45     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
46         String idS = req.getPathInfo();
47         Language lang = getLanguage(req);
48         PrintWriter out = resp.getWriter();
49         if (idS.length() < DEFAULT_PATH.length() + 2) {
50             final Organisation[] orgas = Organisation.getOrganisations(0, 30);
51             HashMap<String, Object> map = new HashMap<>();
52             map.put("orgas", new IterableDataset() {
53
54                 int count = 0;
55
56                 @Override
57                 public boolean next(Language l, Map<String, Object> vars) {
58                     if (count >= orgas.length)
59                         return false;
60                     Organisation org = orgas[count++];
61                     System.out.println(org.getId());
62                     vars.put("id", Integer.toString(org.getId()));
63                     vars.put("name", org.getName());
64                     vars.put("country", org.getState());
65                     return true;
66                 }
67             });
68             this.orgas.output(out, lang, map);
69             return;
70         }
71         idS = idS.substring(DEFAULT_PATH.length() + 1);
72         int id = Integer.parseInt(idS);
73         Organisation o = Organisation.getById(id);
74         if (o == null) {
75             resp.sendError(404);
76             return;
77         }
78         new CreateOrgForm(req, o).output(out, lang, new HashMap<String, Object>());
79         out.println(lang.getTranslation("WARNING: updating the data will revoke all issued certificates."));
80     }
81 }