From e78d6b406bede7c021aaecf7ae2c8c893e0ea84a Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Thu, 22 Mar 2012 08:49:48 +0000 Subject: [PATCH] Reverted parts of r16963 to fix a regression on the creation of permissions on proxy models. Refs #17904. Thanks koenb for the report and claudep for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17776 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/auth/management/__init__.py | 4 ++-- tests/modeltests/proxy_models/models.py | 5 ++++- tests/modeltests/proxy_models/tests.py | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/django/contrib/auth/management/__init__.py b/django/contrib/auth/management/__init__.py index e792597778..b516507277 100644 --- a/django/contrib/auth/management/__init__.py +++ b/django/contrib/auth/management/__init__.py @@ -31,8 +31,8 @@ def create_permissions(app, created_models, verbosity, **kwargs): searched_perms = list() # The codenames and ctypes that should exist. ctypes = set() - ctypes_for_models = ContentType.objects.get_for_models(*app_models) - for klass, ctype in ctypes_for_models.iteritems(): + for klass in app_models: + ctype = ContentType.objects.get_for_model(klass) ctypes.add(ctype) for perm in _get_all_permissions(klass._meta): searched_perms.append((ctype, perm)) diff --git a/tests/modeltests/proxy_models/models.py b/tests/modeltests/proxy_models/models.py index c033117bf8..49fd87deff 100644 --- a/tests/modeltests/proxy_models/models.py +++ b/tests/modeltests/proxy_models/models.py @@ -44,6 +44,9 @@ class MyPerson(Person): class Meta: proxy = True ordering = ["name"] + permissions = ( + ("display_users", "May display users information"), + ) objects = SubManager() other = PersonManager() @@ -158,4 +161,4 @@ class Improvement(Issue): class ProxyImprovement(Improvement): class Meta: - proxy = True \ No newline at end of file + proxy = True diff --git a/tests/modeltests/proxy_models/tests.py b/tests/modeltests/proxy_models/tests.py index b3321038db..738e0dbce2 100644 --- a/tests/modeltests/proxy_models/tests.py +++ b/tests/modeltests/proxy_models/tests.py @@ -167,6 +167,13 @@ class ProxyModelTests(TestCase): resp = [p.name for p in OtherPerson._default_manager.all()] self.assertEqual(resp, ['barney', 'wilma']) + def test_permissions_created(self): + from django.contrib.auth.models import Permission + try: + Permission.objects.get(name="May display users information") + except Permission.DoesNotExist: + self.fail("The permission 'May display users information' has not been created") + def test_proxy_model_signals(self): """ Test save signals for proxy models