Skip to content

Commit b5aa642

Browse files
committed
Case insensitive domain matching
1 parent 1d1ef33 commit b5aa642

File tree

5 files changed

+21
-4
lines changed

5 files changed

+21
-4
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ repos:
1919
- id: django-upgrade
2020
args: [--target-version, "4.2"]
2121
- repo: https://github.com/astral-sh/ruff-pre-commit
22-
rev: "v0.8.6"
22+
rev: "v0.9.4"
2323
hooks:
2424
- id: ruff
2525
args: [--unsafe-fixes]

CHANGELOG.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ Change log
55
Next version
66
~~~~~~~~~~~~
77

8+
- Changed host name matching to be case insensitive.
9+
10+
811
0.4 (2024-11-12)
912
~~~~~~~~~~~~~~~~
1013

feincms3_language_sites/middleware.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def middleware(request):
4646
else HttpResponsePermanentRedirect
4747
)
4848
return redirect_class(
49-
f'{protocol}://{request.site["host"]}{request.get_full_path()}'
49+
f"{protocol}://{request.site['host']}{request.get_full_path()}"
5050
)
5151

5252
return get_response(request)

feincms3_language_sites/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ def site_for_host(host):
2222
for language_code, site in settings.SITES.items():
2323
site.setdefault("language_code", language_code)
2424
if "host_re" in site:
25-
if re.search(site["host_re"], host):
25+
if re.search(site["host_re"], host, re.I):
2626
return site
27-
elif site["host"] == host:
27+
elif site["host"].lower() == host.lower():
2828
return site
2929
return None
3030

tests/testapp/test_feincms3.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ def test_400(self):
4545
)
4646
self.assertEqual(self.client.get("/de/").status_code, 400)
4747

48+
@override_settings(SITES={"de": {"host": "blub.example.com"}})
49+
def test_case_insensitive(self):
50+
page = Page.objects.create(
51+
title="home",
52+
slug="home",
53+
path="/de/",
54+
static_path=True,
55+
language_code="de",
56+
is_active=True,
57+
)
58+
response = self.client.get("/de/", headers={"host": "Blub.Example.Com"})
59+
self.assertContains(response, "home - testapp")
60+
self.assertEqual(page.get_absolute_url(), "http://blub.example.com/de/")
61+
4862

4963
@override_settings(
5064
MIDDLEWARE=settings.MIDDLEWARE

0 commit comments

Comments
 (0)