From: Felix Dörre Date: Fri, 17 Feb 2017 20:14:44 +0000 (+0100) Subject: upd: use a link-redirector for all external links. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=d71624703243c182beb0f946ebc582e0366a4686 upd: use a link-redirector for all external links. Change-Id: I4403040fb94e7b6779c14c64bc9398c8f81546b6 --- diff --git a/doc/TemplateSyntax.txt b/doc/TemplateSyntax.txt index f747c225..b6979469 100644 --- a/doc/TemplateSyntax.txt +++ b/doc/TemplateSyntax.txt @@ -13,6 +13,8 @@ Syntax: Text may not contain "?>". If the text contains "$" or "!'" it is interpreted as "advanced replacement". - ${variablename} is interpreted as "output this variable at this point" + - $!{variablename} is interpreted as "output this variable unescaped at this point" + - !(/link) is interpreted as "output an opening -tag to '/link' at this point" (which must be closed, e.g. using !'', see below) - !'literal content' output "literal content" here and do not translate or escape. (literal content may not contain any of: {}'$ ) Then the whole text than also may not contain "{" and "}". diff --git a/links.txt b/links.txt new file mode 100644 index 00000000..a1609201 --- /dev/null +++ b/links.txt @@ -0,0 +1,13 @@ +/policy +/policy/ToS +/policy/CPS +/policy/verification +/wiki/agentQualifyingChallenge +/wiki/gigi +/wiki/CSR +/wiki/names +/wiki/lostPassword +/wiki/goodPassword +/wiki/verificationHandbook +/ttp/user +/ttp/country diff --git a/src/club/wpia/gigi/Gigi.java b/src/club/wpia/gigi/Gigi.java index f8f931a6..f30b5aed 100644 --- a/src/club/wpia/gigi/Gigi.java +++ b/src/club/wpia/gigi/Gigi.java @@ -81,6 +81,8 @@ import club.wpia.gigi.util.TimeConditions; public final class Gigi extends HttpServlet { + public static final String LINK_HOST = "linkHost"; + private class MenuBuilder { private LinkedList categories = new LinkedList(); @@ -424,6 +426,11 @@ public final class Gigi extends HttpServlet { vars.put("static", isSecure ? staticTemplateVarSecure : staticTemplateVar); vars.put("year", Calendar.getInstance().get(Calendar.YEAR)); vars.put("content", content); + if (isSecure) { + req.setAttribute(LINK_HOST, ServerConstants.getLinkHostNamePortSecure()); + } else { + req.setAttribute(LINK_HOST, ServerConstants.getLinkHostNamePort()); + } if (currentAuthContext != null) { // TODO maybe move this information into the AuthContext object vars.put("loginMethod", req.getSession().getAttribute(LOGIN_METHOD)); diff --git a/src/club/wpia/gigi/Gigi.templ b/src/club/wpia/gigi/Gigi.templ index 3c011941..7399b192 100644 --- a/src/club/wpia/gigi/Gigi.templ +++ b/src/club/wpia/gigi/Gigi.templ @@ -51,12 +51,6 @@
Page info - | ©2016- SomeCA
diff --git a/src/club/wpia/gigi/output/template/SprintfCommand.java b/src/club/wpia/gigi/output/template/SprintfCommand.java index 6b40c8fd..015fe6b6 100644 --- a/src/club/wpia/gigi/output/template/SprintfCommand.java +++ b/src/club/wpia/gigi/output/template/SprintfCommand.java @@ -10,6 +10,7 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import club.wpia.gigi.Gigi; import club.wpia.gigi.localisation.Language; import club.wpia.gigi.util.HTMLEncoder; @@ -29,7 +30,7 @@ public final class SprintfCommand implements Translatable { * a string with {0},{1},.. as placeholders. * @param store * the data to put into the placeholders: ${var}, $!{var}, - * !'plain'. + * !'plain', !(/link). */ public SprintfCommand(String text, List store) { this.text = text; @@ -38,7 +39,7 @@ public final class SprintfCommand implements Translatable { private static final String VARIABLE = "\\$!?\\{[a-zA-Z0-9_-]+\\}"; - private static final Pattern processingInstruction = Pattern.compile("(" + VARIABLE + ")|(!'[^{}'\\$]*)'"); + private static final Pattern processingInstruction = Pattern.compile("(" + VARIABLE + ")|(?:(!'[^{}'\\$]*)')|(?:(!\\([^{})\\$]*)\\))"); /** * Creates a new SprintfCommand that is parsed as from template source. @@ -59,6 +60,8 @@ public final class SprintfCommand implements Translatable { var.add(group); } else if ((group = m.group(2)) != null) { var.add(group); + } else if ((group = m.group(3)) != null) { + var.add(group); } else { throw new Error("Regex is broken??"); } @@ -84,6 +87,16 @@ public final class SprintfCommand implements Translatable { Template.outputVar(out, l, vars, var.substring(3, var.length() - 1), true); } else if (var.startsWith("!'")) { out.print(var.substring(2)); + } else if (var.startsWith("!(")) { + String host = (String) vars.get(Gigi.LINK_HOST); + if (host == null) { + throw new Error("Unconfigured link-host while interpreting link-syntax."); + } + if (var.charAt(2) != '/') { + throw new Error("Need an absolute link for the link service."); + } + String link = "//" + host + var.substring(2); + out.print(""); } else if (var.startsWith("$")) { Template.outputVar(out, l, vars, var.substring(2, var.length() - 1), false); } else { diff --git a/src/club/wpia/gigi/pages/LoginPage.java b/src/club/wpia/gigi/pages/LoginPage.java index 2af51cf7..854fa31b 100644 --- a/src/club/wpia/gigi/pages/LoginPage.java +++ b/src/club/wpia/gigi/pages/LoginPage.java @@ -5,7 +5,6 @@ import static club.wpia.gigi.Gigi.*; import java.io.IOException; import java.io.PrintWriter; import java.security.cert.X509Certificate; -import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -25,8 +24,8 @@ import club.wpia.gigi.pages.main.RegisterPage; import club.wpia.gigi.util.AuthorizationContext; import club.wpia.gigi.util.PasswordHash; import club.wpia.gigi.util.RateLimit; -import club.wpia.gigi.util.ServerConstants; import club.wpia.gigi.util.RateLimit.RateLimitException; +import club.wpia.gigi.util.ServerConstants; public class LoginPage extends Page { @@ -65,14 +64,14 @@ public class LoginPage extends Page { if (req.getHeader("Host").equals(ServerConstants.getSecureHostNamePortSecure())) { resp.getWriter().println(getLanguage(req).getTranslation("Authentication with certificate failed. Try another certificate or use a password.")); } else { - new LoginForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + new LoginForm(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { if (Form.printFormErrors(req, resp.getWriter())) { - Form.getForm(req, LoginForm.class).output(resp.getWriter(), getLanguage(req), new HashMap()); + Form.getForm(req, LoginForm.class).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } diff --git a/src/club/wpia/gigi/pages/LoginPage.templ b/src/club/wpia/gigi/pages/LoginPage.templ index b4d04be8..f34ffb13 100644 --- a/src/club/wpia/gigi/pages/LoginPage.templ +++ b/src/club/wpia/gigi/pages/LoginPage.templ @@ -4,5 +4,5 @@



-

'wiki page!'' for more information?>

+

' for more information?>

diff --git a/src/club/wpia/gigi/pages/MainPage.java b/src/club/wpia/gigi/pages/MainPage.java index f797a193..f55e90d3 100644 --- a/src/club/wpia/gigi/pages/MainPage.java +++ b/src/club/wpia/gigi/pages/MainPage.java @@ -1,7 +1,7 @@ package club.wpia.gigi.pages; import java.io.IOException; -import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -18,10 +18,11 @@ public class MainPage extends Page { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + Map vars = getDefaultVars(req); if (LoginPage.getUser(req) != null) { - getDefaultTemplate().output(resp.getWriter(), getLanguage(req), new HashMap()); + getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); } else { - notLog.output(resp.getWriter(), getLanguage(req), new HashMap()); + notLog.output(resp.getWriter(), getLanguage(req), vars); } } diff --git a/src/club/wpia/gigi/pages/MainPage.templ b/src/club/wpia/gigi/pages/MainPage.templ index fb87cf5b..8352e0cc 100644 --- a/src/club/wpia/gigi/pages/MainPage.templ +++ b/src/club/wpia/gigi/pages/MainPage.templ @@ -11,4 +11,3 @@

-

https://wiki.cacert.org/TTP/TTPuser' and !' https://wiki.cacert.org/TTP/TTPAL'.?>

diff --git a/src/club/wpia/gigi/pages/MainPageNotLogin.templ b/src/club/wpia/gigi/pages/MainPageNotLogin.templ index 0a5f030c..33c58da2 100644 --- a/src/club/wpia/gigi/pages/MainPageNotLogin.templ +++ b/src/club/wpia/gigi/pages/MainPageNotLogin.templ @@ -13,9 +13,9 @@

-

'Agent Qualifying Challenge!'' yet??>

+

' yet??>

-

'Terms of Service!'' yet??>

+

' yet??>

-

'Wiki Documentation site!''.?> -'Approved Policies page!''.?>

+

'.?> +'.?>

diff --git a/src/club/wpia/gigi/pages/ManagedFormPage.java b/src/club/wpia/gigi/pages/ManagedFormPage.java index b1cd6977..1f330cef 100644 --- a/src/club/wpia/gigi/pages/ManagedFormPage.java +++ b/src/club/wpia/gigi/pages/ManagedFormPage.java @@ -1,7 +1,6 @@ package club.wpia.gigi.pages; import java.io.IOException; -import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -21,7 +20,7 @@ public abstract class ManagedFormPage extends Page { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { if (Form.printFormErrors(req, resp.getWriter())) { Form form = Form.getForm(req, c); - form.output(resp.getWriter(), getLanguage(req), new HashMap()); + form.output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } diff --git a/src/club/wpia/gigi/pages/ManagedMultiFormPage.java b/src/club/wpia/gigi/pages/ManagedMultiFormPage.java index eca378fe..30e3c82d 100644 --- a/src/club/wpia/gigi/pages/ManagedMultiFormPage.java +++ b/src/club/wpia/gigi/pages/ManagedMultiFormPage.java @@ -1,7 +1,6 @@ package club.wpia.gigi.pages; import java.io.IOException; -import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -18,7 +17,7 @@ public abstract class ManagedMultiFormPage extends Page { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { if (Form.printFormErrors(req, resp.getWriter())) { - getForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + getForm(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } diff --git a/src/club/wpia/gigi/pages/OneFormPage.java b/src/club/wpia/gigi/pages/OneFormPage.java index a36c9eb6..91c29908 100644 --- a/src/club/wpia/gigi/pages/OneFormPage.java +++ b/src/club/wpia/gigi/pages/OneFormPage.java @@ -1,7 +1,6 @@ package club.wpia.gigi.pages; import java.io.IOException; -import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -27,14 +26,14 @@ public class OneFormPage extends Page { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { Form form = Form.getForm(req, c); if (Form.printFormErrors(req, resp.getWriter())) { - form.output(resp.getWriter(), getLanguage(req), new HashMap()); + form.output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { try { - c.getConstructor(HttpServletRequest.class).newInstance(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + c.getConstructor(HttpServletRequest.class).newInstance(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } catch (ReflectiveOperationException e) { new GigiApiException().format(resp.getWriter(), getLanguage(req)); } diff --git a/src/club/wpia/gigi/pages/Page.java b/src/club/wpia/gigi/pages/Page.java index 97cd83f7..75d072e8 100644 --- a/src/club/wpia/gigi/pages/Page.java +++ b/src/club/wpia/gigi/pages/Page.java @@ -3,13 +3,16 @@ package club.wpia.gigi.pages; import java.io.IOException; import java.net.URL; import java.util.Enumeration; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import club.wpia.gigi.Gigi; import club.wpia.gigi.PermissionCheckable; import club.wpia.gigi.dbObjects.User; import club.wpia.gigi.localisation.Language; @@ -165,4 +168,17 @@ public abstract class Page implements PermissionCheckable { return !needsLogin() || ac != null; } + /** + * Derive a default variable map for template processing. + * + * @param req + * the HTTP-request to derive the map from + * @return the map + */ + protected Map getDefaultVars(HttpServletRequest req) { + HashMap vars = new HashMap(); + vars.put(Gigi.LINK_HOST, req.getAttribute(Gigi.LINK_HOST)); + return vars; + } + } diff --git a/src/club/wpia/gigi/pages/PasswordResetForm.templ b/src/club/wpia/gigi/pages/PasswordResetForm.templ index b43e9152..b4ac1e92 100644 --- a/src/club/wpia/gigi/pages/PasswordResetForm.templ +++ b/src/club/wpia/gigi/pages/PasswordResetForm.templ @@ -18,7 +18,7 @@ - *'FAQ!''.?> + *'.?> diff --git a/src/club/wpia/gigi/pages/PasswordResetPage.java b/src/club/wpia/gigi/pages/PasswordResetPage.java index 7dc950ca..3608549c 100644 --- a/src/club/wpia/gigi/pages/PasswordResetPage.java +++ b/src/club/wpia/gigi/pages/PasswordResetPage.java @@ -94,14 +94,14 @@ public class PasswordResetPage extends Page { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { if (Form.printFormErrors(req, resp.getWriter())) { PasswordResetForm form = Form.getForm(req, PasswordResetForm.class); - form.output(resp.getWriter(), getLanguage(req), new HashMap()); + form.output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { try { - new PasswordResetForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + new PasswordResetForm(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } catch (GigiApiException e) { e.format(resp.getWriter(), getLanguage(req)); } diff --git a/src/club/wpia/gigi/pages/account/ChangePasswordForm.templ b/src/club/wpia/gigi/pages/account/ChangePasswordForm.templ index a0fc4529..c77f7434 100644 --- a/src/club/wpia/gigi/pages/account/ChangePasswordForm.templ +++ b/src/club/wpia/gigi/pages/account/ChangePasswordForm.templ @@ -18,7 +18,7 @@ - *'FAQ!''.?> + *'.?> diff --git a/src/club/wpia/gigi/pages/account/ChangePasswordPage.java b/src/club/wpia/gigi/pages/account/ChangePasswordPage.java index 43823002..46748e32 100644 --- a/src/club/wpia/gigi/pages/account/ChangePasswordPage.java +++ b/src/club/wpia/gigi/pages/account/ChangePasswordPage.java @@ -1,7 +1,6 @@ package club.wpia.gigi.pages.account; import java.io.IOException; -import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -20,7 +19,7 @@ public class ChangePasswordPage extends ManagedFormPage { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - new ChangeForm(req, getUser(req)).output(resp.getWriter(), getLanguage(req), new HashMap()); + new ChangeForm(req, getUser(req)).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } @Override diff --git a/src/club/wpia/gigi/pages/account/certs/CertificateAdd.java b/src/club/wpia/gigi/pages/account/certs/CertificateAdd.java index 9694531c..d628c588 100644 --- a/src/club/wpia/gigi/pages/account/certs/CertificateAdd.java +++ b/src/club/wpia/gigi/pages/account/certs/CertificateAdd.java @@ -1,7 +1,6 @@ package club.wpia.gigi.pages.account.certs; import java.io.IOException; -import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -20,7 +19,7 @@ public class CertificateAdd extends ManagedFormPage { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - new CertificateIssueForm(req).output(resp.getWriter(), getLanguage(req), new HashMap()); + new CertificateIssueForm(req).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } @Override diff --git a/src/club/wpia/gigi/pages/account/certs/CertificateDisplay.templ b/src/club/wpia/gigi/pages/account/certs/CertificateDisplay.templ index da3bef21..55086650 100644 --- a/src/club/wpia/gigi/pages/account/certs/CertificateDisplay.templ +++ b/src/club/wpia/gigi/pages/account/certs/CertificateDisplay.templ @@ -49,7 +49,7 @@

. *

- * 'FAQ!''!?> + * '!?> diff --git a/src/club/wpia/gigi/pages/account/certs/CertificateIssueForm.templ b/src/club/wpia/gigi/pages/account/certs/CertificateIssueForm.templ index 5fe3de07..acbfe323 100644 --- a/src/club/wpia/gigi/pages/account/certs/CertificateIssueForm.templ +++ b/src/club/wpia/gigi/pages/account/certs/CertificateIssueForm.templ @@ -1,7 +1,7 @@

-

http://www.cacert.org/cps.php

+

'.?>

diff --git a/src/club/wpia/gigi/pages/account/certs/Certificates.java b/src/club/wpia/gigi/pages/account/certs/Certificates.java index e2244e99..07028f6f 100644 --- a/src/club/wpia/gigi/pages/account/certs/Certificates.java +++ b/src/club/wpia/gigi/pages/account/certs/Certificates.java @@ -14,12 +14,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import club.wpia.gigi.dbObjects.Certificate; +import club.wpia.gigi.dbObjects.Certificate.CertificateStatus; +import club.wpia.gigi.dbObjects.Certificate.SubjectAlternateName; import club.wpia.gigi.dbObjects.CertificateOwner; import club.wpia.gigi.dbObjects.Organisation; import club.wpia.gigi.dbObjects.SupportedUser; import club.wpia.gigi.dbObjects.User; -import club.wpia.gigi.dbObjects.Certificate.CertificateStatus; -import club.wpia.gigi.dbObjects.Certificate.SubjectAlternateName; import club.wpia.gigi.localisation.Language; import club.wpia.gigi.output.TrustchainIterable; import club.wpia.gigi.output.template.Form; @@ -147,7 +147,7 @@ public class Certificates extends Page implements HandlesMixedRequest { resp.sendError(404); return; } - HashMap vars = new HashMap<>(); + Map vars = getDefaultVars(req); vars.put("serial", URLEncoder.encode(serial, "UTF-8")); CertificateStatus st = c.getStatus(); diff --git a/src/club/wpia/gigi/pages/main/RegisterPage.java b/src/club/wpia/gigi/pages/main/RegisterPage.java index 74f91074..3a7e5ab6 100644 --- a/src/club/wpia/gigi/pages/main/RegisterPage.java +++ b/src/club/wpia/gigi/pages/main/RegisterPage.java @@ -1,7 +1,7 @@ package club.wpia.gigi.pages.main; import java.io.IOException; -import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -29,8 +29,9 @@ public class RegisterPage extends Page { } private void outputGet(HttpServletRequest req, HttpServletResponse resp, Signup s) throws IOException { - getDefaultTemplate().output(resp.getWriter(), getLanguage(req), new HashMap()); - s.output(resp.getWriter(), getLanguage(req), new HashMap()); + Map vars = getDefaultVars(req); + getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars); + s.output(resp.getWriter(), getLanguage(req), vars); } @Override diff --git a/src/club/wpia/gigi/pages/main/RegisterPage.templ b/src/club/wpia/gigi/pages/main/RegisterPage.templ index fbf084d1..8bc16fab 100644 --- a/src/club/wpia/gigi/pages/main/RegisterPage.templ +++ b/src/club/wpia/gigi/pages/main/RegisterPage.templ @@ -6,5 +6,5 @@

-'FAQ!''.?> +'.?>

diff --git a/src/club/wpia/gigi/pages/main/Signup.java b/src/club/wpia/gigi/pages/main/Signup.java index 134df159..8c070782 100644 --- a/src/club/wpia/gigi/pages/main/Signup.java +++ b/src/club/wpia/gigi/pages/main/Signup.java @@ -2,6 +2,7 @@ package club.wpia.gigi.pages.main; import java.io.IOException; import java.io.PrintWriter; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -50,7 +51,7 @@ public class Signup extends Form { @Override public void outputContent(PrintWriter out, Language l, Map outerVars) { - HashMap vars = new HashMap(); + HashMap vars = new HashMap(outerVars); vars.put("name", ni); vars.put("dob", myDoB); vars.put("email", HTMLEncoder.encodeHTML(email)); @@ -58,7 +59,7 @@ public class Signup extends Form { vars.put("country", country ? " checked=\"checked\"" : ""); vars.put("regional", regional ? " checked=\"checked\"" : ""); vars.put("radius", radius ? " checked=\"checked\"" : ""); - vars.put("helpOnNames", String.format(l.getTranslation("Help on Names %sin the wiki%s"), "", "")); + vars.put("helpOnNames", new SprintfCommand("Help on Names {0}in the wiki{1}", Arrays.asList("!(/wiki/names", "!'"))); vars.put("csrf", getCSRFToken()); vars.put("dobmin", User.MINIMUM_AGE + ""); vars.put("countryCode", cs); diff --git a/src/club/wpia/gigi/pages/main/Signup.templ b/src/club/wpia/gigi/pages/main/Signup.templ index f997cc5c..a6ae2b1b 100644 --- a/src/club/wpia/gigi/pages/main/Signup.templ +++ b/src/club/wpia/gigi/pages/main/Signup.templ @@ -43,7 +43,7 @@ - *'FAQ!''.?> + *'.?> @@ -63,7 +63,7 @@ - 'ToS!'').?> + ').?> diff --git a/src/club/wpia/gigi/pages/wot/AssuranceForm.java b/src/club/wpia/gigi/pages/wot/AssuranceForm.java index f4bda1ee..7df71a78 100644 --- a/src/club/wpia/gigi/pages/wot/AssuranceForm.java +++ b/src/club/wpia/gigi/pages/wot/AssuranceForm.java @@ -12,9 +12,9 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import club.wpia.gigi.GigiApiException; +import club.wpia.gigi.dbObjects.Assurance.AssuranceType; import club.wpia.gigi.dbObjects.Name; import club.wpia.gigi.dbObjects.User; -import club.wpia.gigi.dbObjects.Assurance.AssuranceType; import club.wpia.gigi.localisation.Language; import club.wpia.gigi.output.ArrayIterable; import club.wpia.gigi.output.CountrySelector; @@ -106,7 +106,7 @@ public class AssuranceForm extends Form { @Override public void outputContent(PrintWriter out, Language l, Map vars) { - HashMap res = new HashMap(); + HashMap res = new HashMap(vars); res.putAll(vars); res.put("names", new ArrayIterable(assureeNames) { diff --git a/src/club/wpia/gigi/pages/wot/AssuranceForm.templ b/src/club/wpia/gigi/pages/wot/AssuranceForm.templ index 98479f76..a4580c6e 100644 --- a/src/club/wpia/gigi/pages/wot/AssuranceForm.templ +++ b/src/club/wpia/gigi/pages/wot/AssuranceForm.templ @@ -1,4 +1,4 @@ - +
@@ -39,14 +39,14 @@ - + diff --git a/src/club/wpia/gigi/pages/wot/AssurePage.java b/src/club/wpia/gigi/pages/wot/AssurePage.java index cc0c5a07..f17aad64 100644 --- a/src/club/wpia/gigi/pages/wot/AssurePage.java +++ b/src/club/wpia/gigi/pages/wot/AssurePage.java @@ -2,7 +2,7 @@ package club.wpia.gigi.pages.wot; import java.io.IOException; import java.io.PrintWriter; -import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -34,7 +34,7 @@ public class AssurePage extends Page { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { PrintWriter out = resp.getWriter(); - HashMap vars = new HashMap(); + Map vars = getDefaultVars(req); vars.put("DoB", ds); t.output(out, getLanguage(req), vars); } @@ -59,7 +59,7 @@ public class AssurePage extends Page { if (req.getParameter("search") == null) { if (Form.printFormErrors(req, out)) { AssuranceForm form = Form.getForm(req, AssuranceForm.class); - form.output(out, getLanguage(req), new HashMap()); + form.output(out, getLanguage(req), getDefaultVars(req)); } return; } @@ -84,7 +84,7 @@ public class AssurePage extends Page { } else { User assuree = User.getById(id); try { - new AssuranceForm(req, assuree).output(out, getLanguage(req), new HashMap()); + new AssuranceForm(req, assuree).output(out, getLanguage(req), getDefaultVars(req)); } catch (GigiApiException e) { e.format(out, Page.getLanguage(req)); } diff --git a/src/club/wpia/gigi/pages/wot/RequestTTPPage.java b/src/club/wpia/gigi/pages/wot/RequestTTPPage.java index a83de6c5..cdabde5e 100644 --- a/src/club/wpia/gigi/pages/wot/RequestTTPPage.java +++ b/src/club/wpia/gigi/pages/wot/RequestTTPPage.java @@ -1,7 +1,7 @@ package club.wpia.gigi.pages.wot; import java.io.IOException; -import java.util.HashMap; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -29,14 +29,14 @@ public class RequestTTPPage extends Page { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { if (Form.printFormErrors(req, resp.getWriter())) { - Form.getForm(req, RequestTTPForm.class).output(resp.getWriter(), getLanguage(req), new HashMap()); + Form.getForm(req, RequestTTPForm.class).output(resp.getWriter(), getLanguage(req), getDefaultVars(req)); } } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { User u = LoginPage.getUser(req); - HashMap map = new HashMap(); + Map map = getDefaultVars(req); if (u.isInGroup(RequestTTPForm.TTP_APPLICANT)) { map.put("inProgress", true); } else { diff --git a/src/club/wpia/gigi/pages/wot/RequestTTPPage.templ b/src/club/wpia/gigi/pages/wot/RequestTTPPage.templ index c187f069..3fd30864 100644 --- a/src/club/wpia/gigi/pages/wot/RequestTTPPage.templ +++ b/src/club/wpia/gigi/pages/wot/RequestTTPPage.templ @@ -12,15 +12,15 @@

-

https://wiki.cacert.org/TTP/TTPuser' for the basic way how the TTP programme works for you, and !'https://wiki.cacert.org/TTP/TTPAL' whether the TTP programme affects the country where you are located.?>

+

' for the basic way how the TTP programme works for you, and !(/ttp/country)here!'' whether the TTP programme affects the country where you are located.?>

-

+

-

+

diff --git a/src/club/wpia/gigi/util/ServerConstants.java b/src/club/wpia/gigi/util/ServerConstants.java index d3901e8d..8e985fa9 100644 --- a/src/club/wpia/gigi/util/ServerConstants.java +++ b/src/club/wpia/gigi/util/ServerConstants.java @@ -74,6 +74,14 @@ public class ServerConstants { return apiHostName + securePort; } + public static String getLinkHostNamePort() { + return "link." + getSuffix() + port; + } + + public static String getLinkHostNamePortSecure() { + return "link." + getSuffix() + securePort; + } + public static int getSecurePort() { if (secureBindPort != null && !secureBindPort.isEmpty()) { if (secureBindPort.equals("stdin")) { @@ -107,19 +115,19 @@ public class ServerConstants { } public static String getSupportMailAddress() { - return "support@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", ""); + return "support@" + getSuffix(); } public static String getBoardMailAddress() { - return "board@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", ""); + return "board@" + getSuffix(); } public static String getQuizMailAddress() { - return "quiz@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", ""); + return "quiz@" + getSuffix(); } public static String getQuizAdminMailAddress() { - return "quiz-admin@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", ""); + return "quiz-admin@" + getSuffix(); } }
'ToS!''), Verification Policy and the Verification Handbook. I am making this verification subject to and in compliance with the ToS, Verification Policy and Handbook.?>'), Verification Policy and the Verification Handbook. I am making this verification subject to and in compliance with the ToS, Verification Policy and Handbook.?>
: - - - - - + '?> + - '?> + - '?>