1 package org.cacert.gigi.pages.account;
3 import java.io.InputStreamReader;
4 import java.io.PrintWriter;
5 import java.sql.SQLException;
8 import javax.servlet.http.HttpServletRequest;
10 import org.cacert.gigi.GigiApiException;
11 import org.cacert.gigi.dbObjects.User;
12 import org.cacert.gigi.localisation.Language;
13 import org.cacert.gigi.output.DateSelector;
14 import org.cacert.gigi.output.Form;
15 import org.cacert.gigi.output.template.Template;
16 import org.cacert.gigi.pages.Page;
17 import org.cacert.gigi.util.HTMLEncoder;
19 public class MyDetailsForm extends Form {
21 private static Template assured = new Template(MyDetails.class.getResource("MyDetailsFormAssured.templ"));
23 private static Template templ;
25 templ = new Template(new InputStreamReader(MyDetailsForm.class.getResourceAsStream("MyDetailsForm.templ")));
30 private DateSelector ds;
32 public MyDetailsForm(HttpServletRequest hsr, User target) {
35 this.ds = new DateSelector("day", "month", "year", target.getDob());
39 public boolean submit(PrintWriter out, HttpServletRequest req) {
41 if (target.getAssurancePoints() == 0) {
42 String newFname = req.getParameter("fname").trim();
43 String newLname = req.getParameter("lname").trim();
44 String newMname = req.getParameter("mname").trim();
45 String newSuffix = req.getParameter("suffix").trim();
46 if ((newFname.isEmpty() && !target.getFname().isEmpty()) || (newLname.isEmpty() && !target.getLname().isEmpty()) || (newMname.isEmpty() && !target.getMname().isEmpty()) || (newSuffix.isEmpty() && !target.getSuffix().isEmpty())) {
47 throw new GigiApiException("Names couldn't be removed.");
49 target.setFname(newFname);
50 target.setLname(newLname);
51 target.setMname(newMname);
52 target.setSuffix(newSuffix);
54 target.setDob(ds.getDate());
55 target.updateUserData();
57 throw new GigiApiException("No change after assurance allowed.");
59 } catch (SQLException e) {
60 new GigiApiException(e).format(out, Page.getLanguage(req));
62 } catch (GigiApiException e) {
63 e.format(out, Page.getLanguage(req));
65 } catch (NumberFormatException e) {
66 new GigiApiException("Invalid value.").format(out, Page.getLanguage(req));
73 protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
74 vars.put("fname", HTMLEncoder.encodeHTML(target.getFname()));
75 vars.put("mname", target.getMname() == null ? "" : HTMLEncoder.encodeHTML(target.getMname()));
76 vars.put("lname", HTMLEncoder.encodeHTML(target.getLname()));
77 vars.put("suffix", target.getSuffix() == null ? "" : HTMLEncoder.encodeHTML(target.getSuffix()));
78 vars.put("details", "");
80 if (target.getAssurancePoints() == 0) {
82 templ.output(out, l, vars);
84 vars.put("DoB", DateSelector.getDateFormat().format(target.getDob()));
85 assured.output(out, l, vars);
87 } catch (SQLException e) {