From 2dc711b028707871dcc4bc52ccc0ae88e0f115c4 Mon Sep 17 00:00:00 2001 From: joshuastegmaier Date: Thu, 19 Sep 2024 14:42:40 -0400 Subject: [PATCH] Added logging for errors from Turnstile --- concordia/turnstile/fields.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/concordia/turnstile/fields.py b/concordia/turnstile/fields.py index 24eb5201c..cd9b25996 100644 --- a/concordia/turnstile/fields.py +++ b/concordia/turnstile/fields.py @@ -3,6 +3,7 @@ import inspect import json +from logging import getLogger from urllib.error import HTTPError from urllib.parse import urlencode from urllib.request import ProxyHandler, Request, build_opener @@ -13,6 +14,8 @@ from ..turnstile.widgets import TurnstileWidget +logger = getLogger(__name__) + class TurnstileField(forms.Field): widget = TurnstileWidget @@ -64,6 +67,7 @@ def validate(self, value): try: response = opener.open(request, timeout=settings.TURNSTILE_TIMEOUT) except HTTPError as exc: + logger.exception("HTTPError received from Turnstile: ", exc, exc_info=exc) raise forms.ValidationError( self.error_messages["error_turnstile"], code="error_turnstile" ) from exc @@ -71,6 +75,11 @@ def validate(self, value): response_data = json.loads(response.read().decode("utf-8")) if not response_data.get("success"): + logger.exception( + "Failure received from Turnstile. Error codes: %s. Messages: %s", + response_data.get("error-codes"), + response_data.get("messages"), + ) raise forms.ValidationError( self.error_messages["invalid_turnstile"], code="invalid_turnstile" )