1 package org.cacert.gigi.pages.account;
3 import java.io.PrintWriter;
6 import javax.servlet.http.HttpServletRequest;
8 import org.cacert.gigi.GigiApiException;
9 import org.cacert.gigi.dbObjects.User;
10 import org.cacert.gigi.localisation.Language;
11 import org.cacert.gigi.output.DateSelector;
12 import org.cacert.gigi.output.template.Form;
13 import org.cacert.gigi.output.template.Template;
14 import org.cacert.gigi.pages.Page;
15 import org.cacert.gigi.util.HTMLEncoder;
17 public class MyDetailsForm extends Form {
19 private static Template assured = new Template(MyDetails.class.getResource("MyDetailsFormAssured.templ"));
21 private static Template templ;
23 templ = new Template(MyDetailsForm.class.getResource("MyDetailsForm.templ"));
28 private DateSelector ds;
30 public MyDetailsForm(HttpServletRequest hsr, User target) {
33 this.ds = new DateSelector("day", "month", "year", target.getDob());
37 public boolean submit(PrintWriter out, HttpServletRequest req) {
39 if (target.getAssurancePoints() == 0) {
40 String newFname = req.getParameter("fname").trim();
41 String newLname = req.getParameter("lname").trim();
42 String newMname = req.getParameter("mname").trim();
43 String newSuffix = req.getParameter("suffix").trim();
44 if (newLname.isEmpty()) {
45 throw new GigiApiException("Last name cannot be empty.");
47 target.setFname(newFname);
48 target.setLname(newLname);
49 target.setMname(newMname);
50 target.setSuffix(newSuffix);
52 target.setDob(ds.getDate());
53 target.updateUserData();
55 throw new GigiApiException("No change after assurance allowed.");
57 } catch (GigiApiException e) {
58 e.format(out, Page.getLanguage(req));
60 } catch (NumberFormatException e) {
61 new GigiApiException("Invalid value.").format(out, Page.getLanguage(req));
68 protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
69 vars.put("fname", HTMLEncoder.encodeHTML(target.getFname()));
70 vars.put("mname", target.getMname() == null ? "" : HTMLEncoder.encodeHTML(target.getMname()));
71 vars.put("lname", HTMLEncoder.encodeHTML(target.getLname()));
72 vars.put("suffix", target.getSuffix() == null ? "" : HTMLEncoder.encodeHTML(target.getSuffix()));
73 vars.put("details", "");
74 if (target.getAssurancePoints() == 0) {
76 templ.output(out, l, vars);
78 vars.put("DoB", DateSelector.getDateFormat().format(target.getDob()));
79 assured.output(out, l, vars);