]> WPIA git - gigi.git/commitdiff
upd: get default variables into outputables for error messages
authorFelix Dörre <felix@dogcraft.de>
Wed, 11 Oct 2017 11:29:00 +0000 (13:29 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 9 Nov 2017 18:13:18 +0000 (19:13 +0100)
Change-Id: I01c09aa503158d8cdbcfb3e15b03b61e9ac29d21

src/club/wpia/gigi/GigiApiException.java
src/club/wpia/gigi/output/template/Form.java
src/club/wpia/gigi/pages/OneFormPage.java
src/club/wpia/gigi/pages/Page.java
src/club/wpia/gigi/pages/PasswordResetPage.java
src/club/wpia/gigi/pages/account/certs/Certificates.java
src/club/wpia/gigi/pages/account/domain/DomainOverview.java
src/club/wpia/gigi/pages/account/domain/DomainPinglogForm.java
src/club/wpia/gigi/pages/account/domain/EditDomain.java
src/club/wpia/gigi/pages/wot/VerifyPage.java
util-testing/club/wpia/gigi/pages/Manager.java

index 0e1a1b7f5176a63396a5e5663e7eceb0ab4f369a..4839e4766bf052db29240fc2c6939a688bcb393a 100644 (file)
@@ -6,6 +6,7 @@ import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Locale;
+import java.util.Map;
 
 import club.wpia.gigi.localisation.Language;
 import club.wpia.gigi.output.template.Outputable;
@@ -50,7 +51,7 @@ public class GigiApiException extends Exception {
         return e != null;
     }
 
-    public void format(PrintWriter out, Language language) {
+    public void format(PrintWriter out, Language language, Map<String, Object> vars) {
         out.println("<div class='alert alert-danger error-msgs'>");
         if (isInternalError()) {
             e.printStackTrace();
@@ -58,9 +59,8 @@ public class GigiApiException extends Exception {
             out.println(language.getTranslation("An internal error occurred."));
             out.println("</p>");
         }
-        HashMap<String, Object> map = new HashMap<>();
         for (Outputable message : messages) {
-            map.clear();
+            HashMap<String, Object> map = new HashMap<>(vars);
 
             out.print("<p>");
             message.output(out, language, map);
index 1e94120158facaeb226e418353686348b37f5e48..6b895b7c9665d31872ffd517cacdc41a3289d1ff 100644 (file)
@@ -168,11 +168,11 @@ public abstract class Form implements Outputable {
     public static boolean printFormErrors(HttpServletRequest req, PrintWriter out) {
         Object o = req.getAttribute(SUBMIT_RESULT);
         if (o != null && (o instanceof PermamentFormException)) {
-            ((PermamentFormException) o).getCause().format(out, Page.getLanguage(req));
+            ((PermamentFormException) o).getCause().format(out, Page.getLanguage(req), Page.getDefaultVars(req));
             return false;
         }
         if (o != null && (o instanceof GigiApiException)) {
-            ((GigiApiException) o).format(out, Page.getLanguage(req));
+            ((GigiApiException) o).format(out, Page.getLanguage(req), Page.getDefaultVars(req));
             return true;
         }
         if (o != null && (o instanceof FormContinue)) {
index 91c29908f21bbf1bda18d2f8f9f0e6776971c0fc..452955bcb02c9cca9e6243a3c7729beda8f554b0 100644 (file)
@@ -35,7 +35,7 @@ public class OneFormPage extends Page {
         try {
             c.getConstructor(HttpServletRequest.class).newInstance(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         } catch (ReflectiveOperationException e) {
-            new GigiApiException().format(resp.getWriter(), getLanguage(req));
+            new GigiApiException().format(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         }
     }
 
index 8bca3afa83aa829e3442264933a336f356d19a97..9d431c07c0b5b45a8179c2c0700038e2d11a71fb 100644 (file)
@@ -176,7 +176,7 @@ public abstract class Page implements PermissionCheckable {
      *            the HTTP-request to derive the map from
      * @return the map
      */
-    protected Map<String, Object> getDefaultVars(HttpServletRequest req) {
+    public static Map<String, Object> getDefaultVars(HttpServletRequest req) {
         HashMap<String, Object> vars = new HashMap<String, Object>();
         vars.put(Gigi.LINK_HOST, req.getAttribute(Gigi.LINK_HOST));
         vars.put("appName", ServerConstants.getAppName());
index 3bfb894a851417bb10fd2a51cad04574da754d86..af1829a09223f504fc3bfcfec424d5d0c9acaced 100644 (file)
@@ -104,7 +104,7 @@ public class PasswordResetPage extends Page {
         try {
             new PasswordResetForm(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         } catch (GigiApiException e) {
-            e.format(resp.getWriter(), getLanguage(req));
+            e.format(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         }
     }
 
index 78d8a09f1fa696dfb9d9b1623a92926376e6ef7c..62322554361348c2d91a0cedef772b52b1e054e9 100644 (file)
@@ -231,7 +231,7 @@ public class Certificates extends Page implements HandlesMixedRequest {
             } catch (GeneralSecurityException e) {
                 e.printStackTrace();
             } catch (GigiApiException e) {
-                e.format(out, l);
+                e.format(out, l, getDefaultVars(req));
             }
             certDisplay.output(out, getLanguage(req), vars);
 
index 496d71e8454ed5ac8c4ec19004934c05beda12fa..b3c60da6ad531671dd1c832c95756e5a197acde3 100644 (file)
@@ -35,7 +35,7 @@ public class DomainOverview extends ManagedMultiFormPage {
             }
             getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
         } catch (GigiApiException e) {
-            e.format(resp.getWriter(), getLanguage(req));
+            e.format(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         }
     }
 
index 3ddde80ad2b96f7ac03493839a57b9583e589351..e752557ef6567ca464baddad763a1f22e6cb7f24 100644 (file)
@@ -51,7 +51,7 @@ public class DomainPinglogForm extends Form {
         try {
             pings = target.getPings();
         } catch (GigiApiException e) {
-            e.format(out, l);
+            e.format(out, l, vars);
             return;
         }
         vars.put("domainname", target.getSuffix());
index b6672ae7a26bcf71adff5047e44502477cd95769..a28e3322fa18a82813063e2fc08fe99633beaae5 100644 (file)
@@ -45,7 +45,7 @@ public class EditDomain extends ManagedMultiFormPage {
         try {
             new PingConfigForm(req, d).output(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         } catch (GigiApiException e) {
-            e.format(resp.getWriter(), getLanguage(req));
+            e.format(resp.getWriter(), getLanguage(req), getDefaultVars(req));
         }
 
     }
index 4d5e8c79a62968fa68e9a6dda8e82edd504479a7..e2c216baf9f4830cc462c941d3d4d62f94648117 100644 (file)
@@ -84,7 +84,7 @@ public class VerifyPage extends Page {
                         try {
                             new VerificationForm(req, applicant).output(out, getLanguage(req), getDefaultVars(req));
                         } catch (GigiApiException e) {
-                            e.format(out, Page.getLanguage(req));
+                            e.format(out, Page.getLanguage(req), getDefaultVars(req));
                         }
                     }
                 }
@@ -94,7 +94,7 @@ public class VerifyPage extends Page {
             }
 
         } catch (GigiApiException e) {
-            e.format(out, getLanguage(req));
+            e.format(out, getLanguage(req), getDefaultVars(req));
         }
     }
 }
index f0991aac25b07cfa33616cecd05a5680140290b9..81dfeaebacbe6f33a1eca5dc0f3c7fc7150cbd21 100644 (file)
@@ -27,7 +27,6 @@ import java.util.regex.Pattern;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import sun.security.x509.X509Key;
 import club.wpia.gigi.Gigi;
 import club.wpia.gigi.GigiApiException;
 import club.wpia.gigi.crypto.SPKAC;
@@ -61,6 +60,7 @@ import club.wpia.gigi.util.DomainAssessment;
 import club.wpia.gigi.util.HTMLEncoder;
 import club.wpia.gigi.util.Notary;
 import club.wpia.gigi.util.TimeConditions;
+import sun.security.x509.X509Key;
 
 public class Manager extends Page {
 
@@ -420,7 +420,7 @@ public class Manager extends Page {
                 e.printStackTrace();
                 resp.getWriter().println("An internal error occured.");
             } catch (GigiApiException e) {
-                e.format(resp.getWriter(), Language.getInstance(Locale.ENGLISH));
+                e.format(resp.getWriter(), Language.getInstance(Locale.ENGLISH), getDefaultVars(req));
             }
         } else if (req.getParameter("addCert") != null) {
             User u = User.getByEmail(req.getParameter("addCertEmail"));
@@ -447,7 +447,7 @@ public class Manager extends Page {
                 e1.printStackTrace();
                 resp.getWriter().println("error");
             } catch (GigiApiException e) {
-                e.format(resp.getWriter(), Language.getInstance(Locale.ENGLISH));
+                e.format(resp.getWriter(), Language.getInstance(Locale.ENGLISH), getDefaultVars(req));
             }
 
         } else if (req.getParameter("addExDom") != null) {