]> WPIA git - gigi.git/blob - src/org/cacert/gigi/pages/orga/CreateOrgPage.java
fix: re-display form on error in some cases.
[gigi.git] / src / org / cacert / gigi / pages / orga / CreateOrgPage.java
1 package org.cacert.gigi.pages.orga;
2
3 import java.io.IOException;
4 import java.util.HashMap;
5
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8
9 import org.cacert.gigi.GigiApiException;
10 import org.cacert.gigi.dbObjects.Group;
11 import org.cacert.gigi.output.template.Form;
12 import org.cacert.gigi.pages.Page;
13 import org.cacert.gigi.util.AuthorizationContext;
14
15 public class CreateOrgPage extends Page {
16
17     public static final Group ORG_ASSURER = Group.getByString("orgassurer");
18
19     public static final String DEFAULT_PATH = "/orga/new";
20
21     public CreateOrgPage() {
22         super("Create Organisation");
23     }
24
25     @Override
26     public boolean isPermitted(AuthorizationContext ac) {
27         return ac != null && ac.isInGroup(ORG_ASSURER);
28     }
29
30     @Override
31     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
32         CreateOrgForm form = Form.getForm(req, CreateOrgForm.class);
33         try {
34             if (form.submit(resp.getWriter(), req)) {
35                 resp.sendRedirect(ViewOrgPage.DEFAULT_PATH + "/" + form.getResult().getId());
36                 return;
37             }
38         } catch (GigiApiException e) {
39             e.format(resp.getWriter(), getLanguage(req));
40         }
41         form.output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
42     }
43
44     @Override
45     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
46         new CreateOrgForm(req).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
47     }
48 }