Skip to content

Commit dff09b2

Browse files
committed
Show 404 status code for missing sites
1 parent 5dd2674 commit dff09b2

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

ureport/public/tests.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,10 @@ def test_index(self, mock_get_global_count, mock_cache_get):
146146
mock_cache_get.return_value = None
147147
home_url = reverse("public.index")
148148

149+
response = self.client.get(home_url, SERVER_NAME="random.ureport.io")
150+
self.assertEqual(response.request["PATH_INFO"], "/")
151+
self.assertEqual(response.status_code, 404)
152+
149153
response = self.client.get(home_url, SERVER_NAME="nigeria.ureport.io")
150154
self.assertEqual(response.request["PATH_INFO"], "/")
151155
self.assertEqual(response.context["org"], self.nigeria)
@@ -320,6 +324,12 @@ def test_additional_menu(self):
320324
def test_about(self):
321325
about_url = reverse("public.about")
322326

327+
response = self.client.get(about_url, SERVER_NAME="random.ureport.io")
328+
self.assertEqual(response.request["PATH_INFO"], "/about/")
329+
self.assertEqual(response.status_code, 302)
330+
response = self.client.get(about_url, SERVER_NAME="random.ureport.io", follow=True)
331+
self.assertEqual(response.status_code, 404)
332+
323333
response = self.client.get(about_url, SERVER_NAME="nigeria.ureport.io")
324334
self.assertEqual(response.request["PATH_INFO"], "/about/")
325335
self.assertEqual(response.context["org"], self.nigeria)

ureport/public/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
class RedirectConfigMixin(object):
5151
def has_permission(self, request, *args, **kwargs):
5252
org = request.org
53+
if org is None:
54+
return False
5355
redirect_site_url = org.get_config("redirect_site_url", "").strip()
5456
if redirect_site_url:
5557
return request.user.is_authenticated and (org in request.user.get_user_orgs() or request.user.is_superuser)
@@ -61,6 +63,8 @@ class IndexView(SmartTemplateView):
6163

6264
def pre_process(self, request, *args, **kwargs):
6365
org = request.org
66+
if org is None:
67+
raise Http404("Page not found")
6468
redirect_site_url = org.get_config("redirect_site_url", "").strip()
6569
if redirect_site_url and not request.user.is_authenticated:
6670
return HttpResponse(status=302, headers={"Location": redirect_site_url})

0 commit comments

Comments
 (0)