From a39e4703302562338543ea2e8386bf30d338c01a Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Mon, 23 Aug 2021 10:20:10 +0200
Subject: [PATCH] ansible-inventories/gentner#2370 Allow extra condition for
 proxy_redirect_search_replace

---
 templates/haproxy_cfg.jinja2 | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/templates/haproxy_cfg.jinja2 b/templates/haproxy_cfg.jinja2
index bd7ecac..7f69e1b 100644
--- a/templates/haproxy_cfg.jinja2
+++ b/templates/haproxy_cfg.jinja2
@@ -82,7 +82,10 @@ frontend http_in
   http-request auth realm notprivate if !letsencrypt_challenge privatedomain !privateip !private_auth
 {% endif %}
 {% for redirect in proxy_redirect_search_replace|default([]) %}
-  http-request redirect code 301 location %[url,regsub(\"{{ redirect.search }}\",\"{{ redirect.replace }}\",i)] if !letsencrypt_challenge { path_reg {{ redirect.match }} }
+{% if redirect.extra is defined %}
+  acl {{ redirect.extra.variable }} {{ redirect.extra.condition }}
+{% endif %}
+  http-request redirect code 301 location %[url,regsub(\"{{ redirect.search }}\",\"{{ redirect.replace }}\",i)] if !letsencrypt_challenge {% if redirect.extra is defined %}{% if redirect.extra.negate|default(false) %}!{% endif %}{{ redirect.extra.variable }} {% endif %}{ path_reg {{ redirect.match }} }
 {% endfor %}
 {% for line in proxy_extra_lines|default([]) %}
   {{ line }}
@@ -221,7 +224,10 @@ frontend https_in_{{ cert.ip }}
   http-request auth realm notprivate if privatedomain !privateip !private_auth
 {% endif %}
 {% for redirect in proxy_redirect_search_replace|default([]) %}
-  http-request redirect code 301 location %[url,regsub(\"{{ redirect.search }}\",\"{{ redirect.replace }}\",i)] if { path_reg {{ redirect.match }} }
+  {% if redirect.extra is defined %}
+    acl {{ redirect.extra.variable }} {{ redirect.extra.condition }}
+  {% endif %}
+  http-request redirect code 301 location %[url,regsub(\"{{ redirect.search }}\",\"{{ redirect.replace }}\",i)] if !letsencrypt_challenge {% if redirect.extra is defined %}{% if redirect.extra.negate|default(false) %}!{% endif %}{{ redirect.extra.variable }} {% endif %}{ path_reg {{ redirect.match }} }
 {% endfor %}
 {% for line in proxy_extra_lines|default([]) %}
   {{ line }}
-- 
GitLab