Skip to content

Commit 9cbb2bd

Browse files
committed
Cleaned up some user compatibility shims for old Django versions.
1 parent 53f5d57 commit 9cbb2bd

35 files changed

+75
-111
lines changed

cms/admin/change_list.py

+10-14
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from django.contrib.admin.views.main import ChangeList, ALL_VAR, IS_POPUP_VAR, \
88
ORDER_TYPE_VAR, ORDER_VAR, SEARCH_VAR
99
from django.contrib.sites.models import Site
10-
import django
10+
1111

1212
COPY_VAR = "copy"
1313

@@ -58,25 +58,21 @@ def __init__(self, request, *args, **kwargs):
5858
request.session['cms_admin_site'] = self._current_site.pk
5959
self.set_sites(request)
6060

61-
def get_queryset(self, request=None):
61+
def get_queryset(self, request):
6262
if COPY_VAR in self.params:
6363
del self.params[COPY_VAR]
6464
if 'language' in self.params:
6565
del self.params['language']
6666
if 'page_id' in self.params:
6767
del self.params['page_id']
68-
if django.VERSION[1] > 3:
69-
qs = super(CMSChangeList, self).get_queryset(request).drafts()
70-
else:
71-
qs = super(CMSChangeList, self).get_queryset().drafts()
72-
if request:
73-
site = self.current_site()
74-
permissions = Page.permissions.get_change_id_list(request.user, site)
75-
if permissions != Page.permissions.GRANT_ALL:
76-
qs = qs.filter(pk__in=permissions)
77-
self.root_queryset = self.root_queryset.filter(pk__in=permissions)
78-
self.real_queryset = True
79-
qs = qs.filter(site=self._current_site)
68+
qs = super(CMSChangeList, self).get_queryset(request).drafts()
69+
site = self.current_site()
70+
permissions = Page.permissions.get_change_id_list(request.user, site)
71+
if permissions != Page.permissions.GRANT_ALL:
72+
qs = qs.filter(pk__in=permissions)
73+
self.root_queryset = self.root_queryset.filter(pk__in=permissions)
74+
self.real_queryset = True
75+
qs = qs.filter(site=self._current_site)
8076
return qs
8177

8278
def is_filtered(self):

cms/admin/forms.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# -*- coding: utf-8 -*-
22
from django import forms
3+
from django.contrib.auth import get_user_model
34
from django.contrib.auth.models import Permission
45
from django.contrib.contenttypes.models import ContentType
56
from django.contrib.sites.models import Site
@@ -15,7 +16,7 @@
1516
from cms.forms.widgets import UserSelectAdminWidget, AppHookSelect
1617
from cms.models import Page, PagePermission, PageUser, ACCESS_PAGE, PageUserGroup, Title, EmptyTitle, \
1718
GlobalPagePermission
18-
from cms.utils.compat.dj import get_user_model, force_unicode
19+
from cms.utils.compat.dj import force_unicode
1920
from cms.utils.compat.forms import UserCreationForm
2021
from cms.utils.conf import get_cms_setting
2122
from cms.utils.i18n import get_language_tuple

cms/admin/permissionadmin.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
from copy import deepcopy
33
from django.contrib import admin
44
from django.contrib.admin import site
5+
from django.contrib.auth import get_user_model
56
from django.contrib.auth.admin import UserAdmin
67
from django.utils.translation import ugettext as _
78

89
from cms.admin.forms import GlobalPagePermissionAdminForm, PagePermissionInlineAdminForm, ViewRestrictionInlineAdminForm
910
from cms.exceptions import NoPermissionsException
1011
from cms.models import Page, PagePermission, GlobalPagePermission, PageUser
11-
from cms.utils.compat.dj import get_user_model
1212
from cms.utils.conf import get_cms_setting
1313
from cms.utils.helpers import classproperty
1414
from cms.utils.permissions import get_user_permission_level

cms/admin/useradmin.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# -*- coding: utf-8 -*-
22
from django.contrib import admin
3+
from django.contrib.auth import get_user_model
34

45
from cms.admin.forms import PageUserForm, PageUserGroupForm
56
from cms.admin.permissionadmin import GenericCmsPermissionAdmin
67
from cms.exceptions import NoPermissionsException
78
from cms.models import PageUser, PageUserGroup
8-
from cms.utils.compat.dj import get_user_model
99
from cms.utils.compat.forms import UserAdmin
1010
from cms.utils.conf import get_cms_setting
1111
from cms.utils.permissions import get_subordinate_users

cms/api.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@
88
"""
99
import datetime
1010

11+
from django.contrib.auth import get_user_model
1112
from django.contrib.sites.models import Site
1213
from django.core.exceptions import FieldError
1314
from django.core.exceptions import PermissionDenied
1415
from django.core.exceptions import ValidationError
1516
from django.template.defaultfilters import slugify
1617
from django.template.loader import get_template
1718
from django.utils import six
19+
1820
from cms.admin.forms import save_permissions
1921
from cms.app_base import CMSApp
2022
from cms.apphook_pool import apphook_pool
@@ -28,7 +30,6 @@
2830
from cms.plugin_base import CMSPluginBase
2931
from cms.plugin_pool import plugin_pool
3032
from cms.utils import copy_plugins
31-
from cms.utils.compat.dj import get_user_model
3233
from cms.utils.conf import get_cms_setting
3334
from cms.utils.i18n import get_language_list
3435
from cms.utils.permissions import _thread_locals

cms/cache/permissions.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# -*- coding: utf-8 -*-
2+
from django.contrib.auth import get_user_model
3+
24
from cms.utils import get_cms_setting
3-
from cms.utils.compat.dj import get_user_model
45

56

67
PERMISSION_KEYS = [

cms/management/commands/publisher_publish.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import absolute_import
33
from optparse import make_option
4+
5+
from django.contrib.auth import get_user_model
46
from django.core.management.base import NoArgsCommand, CommandError
57
from django.utils.translation import activate
8+
69
from cms.utils.compat.dj import force_unicode
710

811
class Command(NoArgsCommand):
@@ -44,7 +47,6 @@ def handle_noargs(self, **options):
4447

4548
def publish_pages(self, include_unpublished, language, site):
4649
from cms.models import Page
47-
from cms.utils.compat.dj import get_user_model
4850
from cms.utils.permissions import set_current_user
4951

5052
# thread locals middleware needs to know, who are we - login as a first

cms/menu.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from cms.models.permissionmodels import ACCESS_PAGE
1313
from cms.models.permissionmodels import PagePermission, GlobalPagePermission
1414
from cms.utils import get_language_from_request
15-
from cms.utils.compat.dj import user_related_name
1615
from cms.utils.conf import get_cms_setting
1716
from cms.utils.i18n import get_fallback_languages, hide_untranslated
1817
from cms.utils.page_resolver import get_page_queryset
@@ -37,7 +36,7 @@ def get_visible_pages(request, pages, site=None):
3736
visible_page_ids = []
3837
restricted_pages = defaultdict(list)
3938
page_permissions = PagePermission.objects.filter(can_view=True).select_related(
40-
'page').prefetch_related('group__' + user_related_name)
39+
'page').prefetch_related('group__user_set')
4140

4241
for perm in page_permissions:
4342
# collect the pages that are affected by permissions
@@ -110,7 +109,7 @@ def has_permission_membership(page):
110109
return True
111110
if not perm.group_id:
112111
continue
113-
user_set = getattr(perm.group, user_related_name)
112+
user_set = getattr(perm.group, 'user_set')
114113
# Optimization equivalent to
115114
# if user_pk in user_set.values_list('pk', flat=True)
116115
if any(user_pk == user.pk for user in user_set.all()):

cms/models/managers.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from cms.models.query import PageQuerySet
1010
from cms.publisher import PublisherManager
1111
from cms.utils import get_cms_setting
12-
from cms.utils.compat.dj import user_related_query_name
1312
from cms.utils.i18n import get_fallback_languages
1413

1514

@@ -181,10 +180,7 @@ def with_user(self, user):
181180
"""Get all objects for given user, also takes look if user is in some
182181
group.
183182
"""
184-
query = dict()
185-
query['group__' + user_related_query_name] = user
186-
187-
return self.filter(Q(user=user) | Q(**query))
183+
return self.filter(Q(user=user) | Q(group__user=user))
188184

189185
def with_can_change_permissions(self, user):
190186
"""Set of objects on which user haves can_change_permissions. !But only

cms/signals/permissions.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
from cms.cache.permissions import clear_user_permission_cache
44
from cms.models import PageUser, PageUserGroup
5-
from cms.utils.compat.dj import user_related_name
65
from menus.menu_pool import menu_pool
76

87

@@ -52,13 +51,13 @@ def pre_delete_user(instance, **kwargs):
5251

5352
def pre_save_group(instance, raw, **kwargs):
5453
if instance.pk:
55-
user_set = getattr(instance, user_related_name)
54+
user_set = getattr(instance, 'user_set')
5655
for user in user_set.all():
5756
clear_user_permission_cache(user)
5857

5958

6059
def pre_delete_group(instance, **kwargs):
61-
user_set = getattr(instance, user_related_name)
60+
user_set = getattr(instance, 'user_set')
6261
for user in user_set.all():
6362
clear_user_permission_cache(user)
6463

@@ -67,7 +66,7 @@ def _clear_users_permissions(instance):
6766
if instance.user:
6867
clear_user_permission_cache(instance.user)
6968
if instance.group:
70-
user_set = getattr(instance.group, user_related_name)
69+
user_set = getattr(instance.group, 'user_set')
7170
for user in user_set.all():
7271
clear_user_permission_cache(user)
7372

cms/test_utils/project/customuserapp/admin.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# -*- coding: utf-8 -*-
22
from django.contrib import admin
3+
from django.contrib.auth import get_user_model
34
from django.contrib.auth.admin import UserAdmin as OriginalUserAdmin
45
from django.contrib.auth.models import User as OriginalUser
5-
from cms.utils.compat.dj import get_user_model
66

77

88
if getattr(OriginalUser._meta, 'swapped', False):

cms/test_utils/project/emailuserapp/forms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from django import forms
3+
from django.contrib.auth import get_user_model
34
from django.contrib.auth.forms import ReadOnlyPasswordHashField
4-
from cms.utils.compat.dj import get_user_model
55

66
from .models import EmailUser
77

cms/test_utils/testcases.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import warnings
55

66
from django.conf import settings
7+
from django.contrib.auth import get_user_model
78
from django.contrib.auth.models import AnonymousUser, Permission
89
from django.contrib.sites.models import Site
910
from django.core.cache import cache
@@ -17,7 +18,6 @@
1718

1819
from cms.models import Page
1920
from cms.test_utils.util.context_managers import UserLoginContext
20-
from cms.utils.compat.dj import get_user_model
2121
from cms.utils.compat.urls import urljoin, unquote
2222
from cms.utils.permissions import set_current_user
2323

cms/test_utils/util/context_managers.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@
55
from tempfile import template, mkdtemp
66

77
from django.conf import settings
8+
from django.contrib.auth import get_user_model
89
from django.core.signals import request_started
910
from django.db import reset_queries
1011
from django.utils.six.moves import StringIO
1112
from django.utils.translation import get_language, activate
1213

13-
from cms.utils.compat.dj import get_user_model
14-
1514

1615
class NULL:
1716
pass

cms/tests/admin.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.contrib import admin
1111
from django.contrib.admin.models import LogEntry
1212
from django.contrib.admin.sites import site
13+
from django.contrib.auth import get_user_model
1314
from django.contrib.auth.models import Permission, AnonymousUser
1415
from django.contrib.sites.models import Site
1516
from django.core.urlresolvers import reverse
@@ -36,7 +37,7 @@
3637
from cms.test_utils.util.fuzzy_int import FuzzyInt
3738
from cms.utils import get_cms_setting
3839
from cms.utils.compat import DJANGO_1_6
39-
from cms.utils.compat.dj import get_user_model, force_unicode
40+
from cms.utils.compat.dj import force_unicode
4041

4142

4243
class AdminTestsBase(CMSTestCase):

cms/tests/api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import with_statement
22
import sys
33

4+
from django.contrib.auth import get_user_model
45
from django.contrib.auth.models import Permission
56
from django.contrib.contenttypes.models import ContentType
67
from django.core.exceptions import FieldError
@@ -18,7 +19,6 @@
1819
from cms.test_utils.util.menu_extender import TestMenu
1920
from cms.test_utils.util.mock import AttributeObject
2021
from cms.tests.apphooks import APP_MODULE, APP_NAME
21-
from cms.utils.compat.dj import get_user_model
2222

2323

2424
def _grant_page_permission(user, codename):

cms/tests/apphooks.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from __future__ import with_statement
33
import sys
44

5+
from django.contrib.auth import get_user_model
56
from django.core.urlresolvers import clear_url_caches, reverse
67
from django.test.utils import override_settings
78
from django.utils import six
@@ -17,7 +18,6 @@
1718
from cms.test_utils.testcases import CMSTestCase
1819
from cms.tests.menu_utils import DumbPageLanguageUrl
1920
from cms.toolbar.toolbar import CMSToolbar
20-
from cms.utils.compat.dj import get_user_model
2121
from cms.utils.conf import get_cms_setting
2222
from cms.utils.i18n import force_language
2323
from menus.utils import DefaultLanguageChanger

cms/tests/extensions.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from cms.extensions.toolbar import ExtensionToolbar
33
from cms.toolbar_pool import toolbar_pool
44
from cms.utils.urlutils import admin_reverse
5+
from django.contrib.auth import get_user_model
56
from django.contrib.auth.models import Permission
67
from django.contrib.sites.models import Site
78

@@ -15,7 +16,6 @@
1516
MyTitleExtension)
1617
from cms.test_utils.testcases import CMSTestCase as TestCase
1718
from cms.tests import AdminTestsBase
18-
from cms.utils.compat.dj import get_user_model
1919

2020

2121
class ExtensionsTestCase(TestCase):

cms/tests/forms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from cms.models import ACCESS_PAGE, ACCESS_PAGE_AND_CHILDREN
66
from cms.utils.permissions import set_current_user
7+
from django.contrib.auth import get_user_model
78
from django.contrib.sites.models import Site
89
from django.core.cache import cache
910
from cms.admin import forms
@@ -14,7 +15,6 @@
1415
from cms.forms.utils import (get_site_choices, get_page_choices,
1516
update_site_and_page_choices)
1617
from cms.test_utils.testcases import CMSTestCase
17-
from cms.utils.compat.dj import get_user_model
1818

1919

2020
class Mock_PageSelectFormField(PageSelectFormField):

cms/tests/frontend.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import os
55
import time
66

7+
from django.contrib.auth import get_user_model
78
from django.contrib.auth.models import Permission
89
from django.contrib.sites.models import Site
910
from django.core.cache import cache
@@ -26,7 +27,6 @@
2627
from cms.test_utils.project.placeholderapp.models import Example1
2728
from cms.test_utils.testcases import CMSTestCase
2829
from cms.utils.compat import DJANGO_1_6
29-
from cms.utils.compat.dj import get_user_model
3030
from cms.utils.conf import get_cms_setting
3131

3232
if DJANGO_1_6:

cms/tests/mail.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# -*- coding: utf-8 -*-
2+
from django.contrib.auth import get_user_model
23
from django.core import mail
34

45
from cms.api import create_page_user
56
from cms.test_utils.testcases import CMSTestCase
6-
from cms.utils.compat.dj import get_user_model
77
from cms.utils.mail import mail_page_user_change
88

99

0 commit comments

Comments
 (0)