package org.cacert.gigi.pages.account.mail;
+import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import org.cacert.gigi.dbObjects.EmailAddress;
import org.cacert.gigi.dbObjects.User;
import org.cacert.gigi.localisation.Language;
-import org.cacert.gigi.output.Form;
+import org.cacert.gigi.output.template.Form;
import org.cacert.gigi.output.template.IterableDataset;
import org.cacert.gigi.output.template.Template;
import org.cacert.gigi.pages.Page;
-import org.cacert.gigi.pages.account.ChangePasswordPage;
public class MailManagementForm extends Form {
- private static Template t;
+ private static final Template t = new Template(MailAddForm.class.getResource("MailManagementForm.templ"));
private User target;
- static {
- t = new Template(ChangePasswordPage.class.getResource("MailManagementForm.templ"));
- }
public MailManagementForm(HttpServletRequest hsr, User target) {
super(hsr);
@Override
public boolean submit(PrintWriter out, HttpServletRequest req) {
- if (req.getParameter("makedefault") != null) {
- try {
- String mailid = req.getParameter("emailid");
- if (mailid == null) {
- return false;
- }
- target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(mailid.trim())));
- } catch (GigiApiException e) {
- e.format(out, Page.getLanguage(req));
- return false;
- }
- return true;
- }
- if (req.getParameter("delete") != null) {
- String[] toDel = req.getParameterValues("delid[]");
- if (toDel == null) {
- return false;
+ try {
+ String d;
+ if ((d = req.getParameter("default")) != null) {
+ target.updateDefaultEmail(EmailAddress.getById(Integer.parseInt(d)));
+ } else if ((d = req.getParameter("delete")) != null) {
+ target.deleteEmail(EmailAddress.getById(Integer.parseInt(d)));
+ } else if ((d = req.getParameter("reping")) != null) {
+ EmailAddress.getById(Integer.parseInt(d)).requestReping(Page.getLanguage(req));
}
- for (int i = 0; i < toDel.length; i++) {
- try {
- target.deleteEmail(EmailAddress.getById(Integer.parseInt(toDel[i].trim())));
- } catch (GigiApiException e) {
- e.format(out, Page.getLanguage(req));
- return false;
- }
- }
- return true;
-
+ } catch (GigiApiException e) {
+ e.format(out, Page.getLanguage(req));
+ return false;
+ } catch (IOException e1) {
+ new GigiApiException("Error while doing reping.").format(out, Page.getLanguage(req));
+ return false;
}
- return false;
+ return true;
}
@Override
int mailID = emailAddress.getId();
vars.put("id", mailID);
if (emailAddress.getAddress().equals(target.getEmail())) {
- vars.put("checked", "checked");
+ vars.put("default", " disabled");
+ vars.put("deletable", " disabled");
} else {
- vars.put("checked", "");
+ vars.put("deletable", "");
+ vars.put("default", "");
}
if (emailAddress.isVerified()) {
- vars.put("verification", "Verified");
+ vars.put("verification", l.getTranslation("Verified"));
} else {
- vars.put("verification", "Unverified");
+ // only verified emails may become the default email
+ // address.
+ vars.put("default", " disabled");
+ vars.put("verification", l.getTranslation("Unverified"));
}
+ vars.put("last_verification", emailAddress.getLastPing(true));
if (target.getEmail().equals(emailAddress.getAddress())) {
vars.put("delete", "N/A");
} else {