1 package club.wpia.gigi.pages.wot;
3 import java.io.PrintWriter;
6 import javax.servlet.http.HttpServletRequest;
8 import club.wpia.gigi.GigiApiException;
9 import club.wpia.gigi.dbObjects.Group;
10 import club.wpia.gigi.dbObjects.User;
11 import club.wpia.gigi.localisation.Language;
12 import club.wpia.gigi.output.template.Form;
13 import club.wpia.gigi.output.template.OutputableArrayIterable;
14 import club.wpia.gigi.output.template.Template;
15 import club.wpia.gigi.output.template.TranslateCommand;
16 import club.wpia.gigi.pages.LoginPage;
18 public class RequestTTPForm extends Form {
20 public static final Group TTP_APPLICANT = Group.TTP_APPLICANT;
22 private static final Template t = new Template(RequestTTPForm.class.getResource("RequestTTPForm.templ"));
26 public RequestTTPForm(HttpServletRequest hsr) {
28 u = LoginPage.getUser(hsr);
31 private final String[] COUNTRIES = new String[] {
32 "Australia", "Puerto Rico", "USA"
36 public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
37 String country = req.getParameter("country");
38 if (country != null) {
39 int cid = Integer.parseInt(country);
40 if (cid < 0 || cid >= COUNTRIES.length) {
41 throw new GigiApiException("Invalid country id");
43 country = COUNTRIES[cid];
47 User uReq = LoginPage.getUser(req);
49 if ( !u.equals(uReq)) {
50 throw new GigiApiException("Internal logic error.");
53 u.grantGroup(u, TTP_APPLICANT);
54 return new SuccessMessageResult(new TranslateCommand("Successfully applied for TTP."));
58 protected void outputContent(PrintWriter out, Language l, Map<String, Object> map) {
59 map.put("countries", new OutputableArrayIterable(COUNTRIES, "country"));
61 t.output(out, l, map);