From 4068385e59c25c7baba20fa884640ef18baba098 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Mon, 16 Feb 2015 15:03:49 +0000 Subject: [PATCH] allow non-digit chars (e.g. '-') in user IDs in URLs; fixes #565 --- wagtail/wagtailusers/tests.py | 11 +++++++++++ wagtail/wagtailusers/urls/users.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailusers/tests.py b/wagtail/wagtailusers/tests.py index 1759c3c76..3c86aaf57 100644 --- a/wagtail/wagtailusers/tests.py +++ b/wagtail/wagtailusers/tests.py @@ -13,6 +13,8 @@ import six class TestUserIndexView(TestCase, WagtailTestUtils): def setUp(self): + # create a user that should be visible in the listing + self.test_user = get_user_model().objects.create_user(username='testuser', email='testuser@email.com', password='password') self.login() def get(self, params={}): @@ -22,6 +24,15 @@ class TestUserIndexView(TestCase, WagtailTestUtils): response = self.get() self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'wagtailusers/users/index.html') + self.assertContains(response, 'testuser') + + def test_allows_negative_ids(self): + # see https://github.com/torchbox/wagtail/issues/565 + get_user_model().objects.create_user('guardian', 'guardian@example.com', 'gu@rd14n', id=-1) + response = self.get() + self.assertEqual(response.status_code, 200) + self.assertContains(response, 'testuser') + self.assertContains(response, 'guardian') def test_search(self): response = self.get({'q': "Hello"}) diff --git a/wagtail/wagtailusers/urls/users.py b/wagtail/wagtailusers/urls/users.py index 78487fc5a..8ddd0a83d 100644 --- a/wagtail/wagtailusers/urls/users.py +++ b/wagtail/wagtailusers/urls/users.py @@ -4,5 +4,5 @@ from wagtail.wagtailusers.views import users urlpatterns = [ url(r'^$', users.index, name='wagtailusers_users_index'), url(r'^new/$', users.create, name='wagtailusers_users_create'), - url(r'^(\d+)/$', users.edit, name='wagtailusers_users_edit'), + url(r'^([^\/]+)/$', users.edit, name='wagtailusers_users_edit'), ]