From 9346a2adc20133e5162d609d7df8f8db3dc85bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20R=C3=B6del?= Date: Wed, 18 Jan 2023 22:23:30 +0100 Subject: [PATCH 1/2] Temporarily disable contact form --- .../computer-beantragen/index.md | 2 +- .../computer-beantragen/privat.md | 9 +++-- sites/angestoepselt/httpd.conf | 6 +++- sites/angestoepselt/index.md | 2 +- styles/components/_form-elements.scss | 36 +++++++++++++++++++ 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/sites/angestoepselt/computer-beantragen/index.md b/sites/angestoepselt/computer-beantragen/index.md index c2664f7..93512b8 100644 --- a/sites/angestoepselt/computer-beantragen/index.md +++ b/sites/angestoepselt/computer-beantragen/index.md @@ -4,7 +4,7 @@ useForms: true eleventyNavigation: key: Computer beantragen order: 50 -callout: "Hinweis: Wir bekommen gerade sehr viele Anfragen und können daher keine neuen Laptops ausgeben! Desktop-PCs sind weiterhin verfügbar." +callout: "Hinweis: Wir sind zurzeit ausgelastet und können leider temporär keine neuen Anfragen annehmen." --- # Computer beantragen diff --git a/sites/angestoepselt/computer-beantragen/privat.md b/sites/angestoepselt/computer-beantragen/privat.md index e577938..f4c95f3 100644 --- a/sites/angestoepselt/computer-beantragen/privat.md +++ b/sites/angestoepselt/computer-beantragen/privat.md @@ -1,12 +1,17 @@ --- layout: layouts/page.njk useForms: true -callout: "Hinweis: Wir bekommen gerade sehr viele Anfragen und können daher keine neuen Laptops ausgeben! Desktop-PCs sind weiterhin verfügbar." +callout: "Hinweis: Wir sind zurzeit ausgelastet und können leider temporär keine neuen Anfragen annehmen." --- # Privat einen Computer beantragen -
+> Wir bekommen gerade zu viele Anfragen, um neue entgegenzunehmen. +> Bitte schaue in ein paar Wochen wieder auf unserer Homepage vorbei. +> +> Danke für dein Verständnis! + + Auf dieser Seite kannst du einen Antrag einreichen, um einen Computer von uns zu erhalten. Bitte teile uns zunächst deine Kontaktdaten mit. diff --git a/sites/angestoepselt/httpd.conf b/sites/angestoepselt/httpd.conf index 08f8f01..65e8418 100644 --- a/sites/angestoepselt/httpd.conf +++ b/sites/angestoepselt/httpd.conf @@ -39,7 +39,7 @@ $HTTP["request-method"] =~ "GET|POST" { "^/spenden" => "/cgi-bin/form.py", "^/mitmachen" => "/cgi-bin/form.py", "^/computer-beantragen/organisation" => "/cgi-bin/form.py", - "^/computer-beantragen/privat" => "/cgi-bin/form.py", + #"^/computer-beantragen/privat" => "/cgi-bin/form.py", "^/hardware-spenden/organisation" => "/cgi-bin/form.py", # Note the actual POST endpoint is /hardware-spenden/privat/laptop, but the # form is served from /hardware-spenden/privat. @@ -47,6 +47,10 @@ $HTTP["request-method"] =~ "GET|POST" { ) } +$HTTP["url"] =~ "^/computer-beantragen/privat" { + +} + $HTTP["url"] =~ "^/cgi-bin/" { alias.url += ( "/cgi-bin" => "@cgibin@" ) diff --git a/sites/angestoepselt/index.md b/sites/angestoepselt/index.md index 03064d2..784a7eb 100644 --- a/sites/angestoepselt/index.md +++ b/sites/angestoepselt/index.md @@ -24,7 +24,7 @@ Wir schaffen Zugang in die digitale Welt

Computer bekommen

- Aktuell keine Laptops | Desktop-PCs verfügbar + Aktuell nicht verfügbar
diff --git a/styles/components/_form-elements.scss b/styles/components/_form-elements.scss index 9d000ad..a1e064d 100644 --- a/styles/components/_form-elements.scss +++ b/styles/components/_form-elements.scss @@ -175,3 +175,39 @@ flex-basis: 60%; } } + +.blanked-out-form { + position: relative; + padding: layout.$large-gap 0; + pointer-events: none; + + &::after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + opacity: 0.6; + background-image: repeating-linear-gradient( + -45deg, + transparent 0rem, + transparent 2rem, + colors.$gray-100 2.2rem, + colors.$gray-100 2.4rem, + colors.$yellow-300 2.4rem, + colors.$yellow-300 2.8rem, + colors.$yellow-500 3rem, + colors.$yellow-300 3.2rem, + colors.$yellow-300 3.6rem, + colors.$gray-100 3.6rem, + colors.$gray-100 3.8rem + ); + mask-image: linear-gradient( + transparent 0%, + black #{layout.$large-gap}, + black calc(100% - #{layout.$large-gap}), + transparent 100% + ); + } +} From f1ed87cd8a2601fadedfa76c0d83e8ab35c31005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20R=C3=B6del?= Date: Wed, 25 Jan 2023 08:28:45 +0100 Subject: [PATCH 2/2] Disable the form on the server --- cgi-bin/form.py | 21 ++++++++++++++------- sites/angestoepselt/httpd.conf | 4 ---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/cgi-bin/form.py b/cgi-bin/form.py index d74a929..1b2ae7c 100755 --- a/cgi-bin/form.py +++ b/cgi-bin/form.py @@ -61,18 +61,24 @@ match os.environ.get("REQUEST_METHOD", "").upper(): case "GET": # For GET requests, serve the form that the user requested. The CSRF # token will be added here as well. - print("Status: 200") - print("Content-Type: text/html") + + form_disabled = request_uri.startswith("/computer-beantragen/privat") + + print(f"Status: {200 if not form_disabled else 503}") + print(f"Content-Type: text/html") print(f"Set-Cookie: __Host-csrftoken={signed_csrf_token}; path=/; Secure; SameSite=Strict; HttpOnly") print("") with open(f"{SITE_DIRECTORY}/{request_uri.strip('/')}/index.html", "r") as template: for line in template.readlines(): - # This is a very rudimentary check to ensure that we actually - # place the token *inside* the form. It assumes that there is - # a) only one form on the site and - # b) the
tag doesn't end on the same line. - if re.match(r"", line, re.IGNORECASE) is not None: + if ( + not form_disabled + # This is a very rudimentary check to ensure that we + # actually place the token *inside* the form. It requires + # adding a comment somewhere in the form that + # will be replaced with the hidden fields and hCaptcha. + and re.match(r"", line, re.IGNORECASE) is not None + ): print(f'') print(f'