From fd66a8647f2c2ec39ec038f17118f087da48a656 Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Thu, 10 May 2018 00:28:19 +0200 Subject: [PATCH] Fix 404 page for anonymous user (fixes #624) The anonymous user has ID `None`. Previously, this exception was raised: NoReverseMatch: Reverse for 'user-profile' with arguments '(None,)' not found. 1 pattern(s) tried: ['user/(?P\\d+)/profile/$'] --- cabot/cabotapp/tests/tests_basic.py | 13 +++++++++++++ cabot/templates/base.html | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/cabot/cabotapp/tests/tests_basic.py b/cabot/cabotapp/tests/tests_basic.py index 816e907..c0da4eb 100644 --- a/cabot/cabotapp/tests/tests_basic.py +++ b/cabot/cabotapp/tests/tests_basic.py @@ -559,6 +559,19 @@ class TestWebInterface(LocalTestCase): super(TestWebInterface, self).setUp() self.client = Client() + def test_404_page_anonymous_user(self): + response = self.client.get('/not/found/for/sure') + self.assertIn('Page not found.', response.content) + self.assertNotIn('Profile Settings', response.content) + self.assertEqual(response.status_code, 404) + + def test_404_page_logged_in_user(self): + self.client.login(username=self.username, password=self.password) + response = self.client.get('/not/found/for/sure') + self.assertIn('Page not found.', response.content) + self.assertIn('Profile Settings', response.content) + self.assertEqual(response.status_code, 404) + def test_set_recovery_instructions(self): # Get service page - will get 200 from login page resp = self.client.get(reverse('update-service', kwargs={'pk':self.service.id}), follow=True) diff --git a/cabot/templates/base.html b/cabot/templates/base.html index e3ca86a..fc9b9f5 100644 --- a/cabot/templates/base.html +++ b/cabot/templates/base.html @@ -1,5 +1,6 @@ {% extends 'base_public.html' %} {% block header_navbar_menu %} + {% if user.is_authenticated %} + {% else %} + {{ block.super }} + {% endif %} {% endblock header_navbar_menu %}