8000 fix: Remove `can_publish` permission from django CMS 4 core (#7635) · django-cms/django-cms@807a87b · GitHub
[go: up one dir, main page]

Skip to content

Commit 807a87b

Browse files
authored
fix: Remove can_publish permission from django CMS 4 core (#7635)
* Fix css glitch * Update translations source fill which was missing strings * Fix: Remove can_publish permission * Update _toolbar.scss
1 parent 121acf1 commit 807a87b

File tree

15 files changed

+33
-75
lines changed

15 files changed

+33
-75
lines changed

cms/admin/forms.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,6 @@ class Meta:
10991099
'can_add',
11001100
'can_change',
11011101
'can_delete',
1102-
'can_publish',
11031102
'can_change_advanced_settings',
11041103
'can_change_permissions',
11051104
'can_move_page',
@@ -1143,7 +1142,6 @@ class Meta:
11431142
'can_add',
11441143
'can_change',
11451144
'can_delete',
1146-
'can_publish',
11471145
'can_change_advanced_settings',
11481146
'can_change_permissions',
11491147
'can_move_page',

cms/admin/permissionadmin.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def get_formset(self, request, obj=None, **kwargs):
8888
"""
8989
Some fields may be excluded here. User can change only
9090
permissions which are available for him. E.g. if user does not haves
91-
can_publish flag, he can't change assign can_publish permissions.
91+
can_change flag, he can't change assign can_change permissions.
9292
"""
9393
exclude = self.exclude or []
9494
if obj:
@@ -97,8 +97,6 @@ def get_formset(self, request, obj=None, **kwargs):
9797
exclude.append('can_add')
9898
if not obj.has_delete_permission(user):
9999
exclude.append('can_delete')
100-
if not obj.has_publish_permission(user):
101-
exclude.append('can_publish')
102100
if not obj.has_advanced_settings_permission(user):
103101
exclude.append('can_change_advanced_settings')
104102
if not obj.has_move_page_permission(user):
@@ -122,8 +120,8 @@ class ViewRestrictionInlineAdmin(PagePermissionInlineAdmin):
122120

123121

124122
class GlobalPagePermissionAdmin(admin.ModelAdmin):
125-
list_display = ['user', 'group', 'can_change', 'can_delete', 'can_publish', 'can_change_permissions']
126-
list_filter = ['user', 'group', 'can_change', 'can_delete', 'can_publish', 'can_change_permissions']
123+
list_display = ['user', 'group', 'can_change', 'can_delete', 'can_change_permissions']
124+
list_filter = ['user', 'group', 'can_change', 'can_delete', 'can_change_permissions']
127125

128126
form = GlobalPagePermissionAdminForm
129127
search_fields = []

cms/api.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ def create_page_user(created_by, user,
488488

489489
def assign_user_to_page(page, user, grant_on=ACCESS_PAGE_AND_DESCENDANTS,
490490
can_add=False, can_change=False, can_delete=False,
491-
can_change_advanced_settings=False, can_publish=False,
491+
can_change_advanced_settings=False, can_publish=None,
492492
can_change_permissions=False, can_move_page=False,
493493
can_recover_page=True, can_view=False,
494494
grant_all=False, global_permission=False):
@@ -507,13 +507,16 @@ def assign_user_to_page(page, user, grant_on=ACCESS_PAGE_AND_DESCENDANTS,
507507
:param can_*: Permissions to grant
508508
:param bool grant_all: Grant all permissions to the user
509509
"""
510+
if can_publish is not None:
511+
warnings.warn('This API function no longer accepts a "can_publish" argument.',
512+
UserWarning, stacklevel=2)
513+
510514
grant_all = grant_all and not global_permission
511515
data = {
512516
'can_add': can_add or grant_all,
513517
'can_change': can_change or grant_all,
514518
'can_delete': can_delete or grant_all,
515519
'can_change_advanced_settings': can_change_advanced_settings or grant_all,
516-
'can_publish': can_publish or grant_all,
517520
'can_change_permissions': can_change_permissions or grant_all,
518521
'can_move_page': can_move_page or grant_all,
519522
'can_view': can_view or grant_all,

cms/cache/permissions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
PERMISSION_KEYS = [
44
'add_page', 'change_page', 'change_page_advanced_settings',
55
'change_page_permissions', 'delete_page', 'move_page',
6-
'publish_page', 'view_page',
6+
'view_page',
77
]
88

99

cms/migrations/0035_auto_20230822_2208.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,22 @@ class Migration(migrations.Migration):
1414
name='pagecontent',
1515
options={'default_permissions': [], 'verbose_name': 'page content', 'verbose_name_plural': 'page contents'},
1616
),
17+
migrations.AlterModelOptions(
18+
name='page',
19+
options={'default_permissions': ('add', 'change', 'delete'), 'permissions': (
20+
('view_page', 'Can view page'), ('edit_static_placeholder', 'Can edit static placeholders')),
21+
'verbose_name': 'page', 'verbose_name_plural': 'pages'},
22+
),
23+
migrations.AlterModelOptions(
24+
name='pagecontent',
25+
options={'default_permissions': [], 'verbose_name': 'page content', 'verbose_name_plural': 'page contents'},
26+
),
27+
migrations.RemoveField(
28+
model_name='globalpagepermission',
29+
name='can_publish',
30+
),
31+
migrations.RemoveField(
32+
model_name='pagepermission',
33+
name='can_publish',
34+
),
1735
]

cms/models/pagemodel.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@ class Meta:
192192
default_permissions = ('add', 'change', 'delete')
193193
permissions = (
194194
('view_page', 'Can view page'),
195-
('publish_page', 'Can publish page'),
196195
('edit_static_placeholder', 'Can edit static placeholders'),
197196
)
198197
verbose_name = _('page')
@@ -1001,10 +1000,6 @@ def has_delete_translation_permission(self, user, language):
10011000
from cms.utils.page_permissions import user_can_delete_page_translation
10021001
return user_can_delete_page_translation(user, page=self, language=language)
10031002

1004-
def has_publish_permission(self, user):
1005-
from cms.utils.pag E377 e_permissions import user_can_publish_page
1006-
return user_can_publish_page(user, page=self)
1007-
10081003
def has_advanced_settings_permission(self, user):
10091004
from cms.utils.page_permissions import (
10101005
user_can_change_page_advanced_settings,

cms/models/permissionmodels.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ class AbstractPagePermission(models.Model):
8484
can_add = models.BooleanField(_("can add"), default=True)
8585
can_delete = models.BooleanField(_("can delete"), default=True)
8686
can_change_advanced_settings = models.BooleanField(_("can change advanced settings"), default=False)
87-
can_publish = models.BooleanField(_("can publish"), default=True)
8887
can_change_permissions = models.BooleanField(
8988
_("can change permissions"), default=False, help_text=_("on page level")
9089
)
@@ -114,11 +113,6 @@ def clean(self):
114113
"to change the page. Edit permissions required.")
115114
raise ValidationError(message)
116115

117-
if self.can_publish:
118-
message = _("Users can't publish a page without permissions "
119-
"to change the page. Edit permissions required.")
120-
raise ValidationError(message)
121-
122116
if self.can_change_advanced_settings:
123117
message = _("Users can't change page advanced settings without permissions "
124118
"to change the page. Edit permissions required.")
@@ -162,7 +156,6 @@ def get_all_permissions(cls):
162156
'can_add',
163157
'can_change',
164158
'can_delete',
165-
'can_publish',
166159
'can_change_advanced_settings',
167160
'can_change_permissions',
168161
'can_move_page',
@@ -182,7 +175,6 @@ def get_permissions_by_action(cls):
182175
'delete_page': ['can_change', 'can_delete'],
183176
'delete_page_translation': ['can_change', 'can_delete'],
184177
'move_page': ['can_change', 'can_move_page'],
185-
'publish_page': ['can_change', 'can_publish'],
186178
'view_page': ['can_view'],
187179
}
188180
return permissions_by_action

cms/static/cms/sass/components/_toolbar.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
.cms-toolbar .cms-btn-action {
8888
background-color: $toolbar-debug-bgcolor;
8989
border-color: $toolbar-debug-bgcolor;
90-
color: $black;
90+
color: black;
9191
&:active,
9292
&:focus {
9393
background-color: $toolbar-debug-bgcolor;

cms/templates/admin/cms/page/permissions.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
<td class="can_change">{{ permission.can_change|boolean_icon }}</td>
3939
<td class="can_add">{{ permission.can_add|boolean_icon }}</td>
4040
<td class="can_delete">{{ permission.can_delete|boolean_icon }}</td>
41-
<td class="can_publish">{{ permission.can_publish|boolean_icon }}</td>
4241
<td class="can_change_permissions">{{ permission.can_change_permissions|boolean_icon }}</td>
4342
<td class="can_move_page">{{ permission.can_move_page|boolean_icon }}</td>
4443
<td class="can_view">{{ permission.can_view|boolean_icon }}</td>

cms/test_utils/testcases.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ def add_global_permission(self, user, **kwargs):
121121
'can_change': False,
122122
'can_delete': False,
123123
'can_change_advanced_settings': False,
124-
'can_publish': False,
125124
'can_change_permissions': False,
126125
'can_move_page': False,
127126
'can_recover_page': False,
@@ -139,7 +138,6 @@ def add_page_permission(self, user, page, **kwargs):
139138
'can_change': False,
140139
'can_delete': False,
141140
'can_change_advanced_settings': False,
142-
'can_publish': False,
143141
'can_change_permissions': False,
144142
'can_move_page': False,
145143
'page': page,
@@ -196,7 +194,6 @@ def _add_default_permissions(self, user):
196194
user.user_permissions.add(Permission.objects.get(codename='delete_link'))
197195
user.user_permissions.add(Permission.objects.get(codename='change_link'))
198196
# Page permissions
199-
user.user_permissions.add(Permission.objects.get(codename='publish_page'))
200197
user.user_permissions.add(Permission.objects.get(codename='add_page'))
201198
user.user_permissions.add(Permission.objects.get(codename='change_page'))
202199
user.user_permissions.add(Permission.objects.get(codename='delete_page'))

cms/tests/test_admin.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ def _get_staff_user(self, use_global_permissions=True):
7070
can_change=True,
7171
can_delete=True,
7272
can_change_advanced_settings=False,
73-
can_publish=True,
7473
can_change_permissions=False,
7574
can_move_page=True,
7675
)
@@ -519,7 +518,6 @@ def _give_cms_permissions(self, user, save=True):
519518
can_change=True,
520519
can_delete=True,
521520
can_change_advanced_settings=False,
522-
can_publish=True,
523521
can_change_permissions=False,
524522
can_move_page=True,
525523
)

cms/tests/test_permissions.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from cms.test_utils.testcases import CMSTestCase
1212
from cms.utils.page_permissions import (
1313
get_change_id_list,
14-
user_can_publish_page,
14+
user_can_change_page,
1515
)
1616

1717

@@ -76,15 +76,14 @@ def test_cached_permission_precedence(self):
7676
)
7777
page_permission = GlobalPagePermission.objects.create(
7878
can_change=True,
79-
can_publish=True,
8079
user=self.user_normal,
8180
)
8281
page_permission.sites.add(Site.objects.get_current())
83-
set_permission_cache(self.user_normal, "publish_page", [])
82+
set_permission_cache(self.user_normal, "change_page", [])
8483

85-
can_publish = user_can_publish_page(
84+
can_change = user_can_change_page(
8685
self.user_normal,
8786
page,
8887
Site.objects.get_current(),
8988
)
90-
self.assertTrue(can_publish)
89+
self.assertTrue(can_change)

cms/tests/test_permmod.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,11 @@ def setUp(self):
6262
is_superuser=True)
6363
self.user_staff = self._create_user("staff", is_staff=True,
6464
add_default_permissions=True)
65-
self.add_permission(self.user_staff, 'publish_page')
6665
self.user_master = self._create_user("master", is_staff=True,
6766
add_default_permissions=True)
68-
self.add_permission(self.user_master, 'publish_page')
6967
self.user_slave = self._create_user("slave", is_staff=True,
7068
add_default_permissions=True)
7169
self.user_normal = self._create_user("normal", is_staff=False)
72-
self.user_normal.user_permissions.add(
73-
Permission.objects.get(codename='publish_page'))
7470

7571
with self.login_user_context(self.user_super):
7672
self.home_page = create_page("home", "nav_playground.html", "en",
@@ -109,7 +105,7 @@ def setUp(self):
109105
page_a = create_page("pageA", "nav_playground.html", "en",
110106
created_by=self.user_super)
111107
assign_user_to_page(page_a, self.user_master,
112-
can_add=True, can_change=True, can_delete=True, can_publish=True,
108+
can_add=True, can_change=True, can_delete=True,
113109
can_move_page=True)
114110

115111
def _add_plugin(self, user, page):
@@ -218,9 +214,6 @@ def test_user_globalpermission(self):
218214
user_global.is_staff = False
219215
user_global.save() # Prevent is_staff permission
220216
global_page = create_page("global", "nav_playground.html", "en")
221-
# Removed call since global page user doesn't have publish permission
222-
# global_page = publish_page(global_page, user_global)
223-
# it's allowed for the normal user to view the page
224217
assign_user_to_page(global_page, user_global, global_permission=True, can_view=True)
225218

226219
url = global_page.get_absolute_url('en')

cms/tests/test_toolbar.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,6 @@ def test_no_change_button(self):
646646
request = self.get_page_request(page, user, edit_url, disable=False)
647647
request.toolbar.post_template_populate()
648648
self.assertFalse(page.has_change_permission(request.user))
649-
self.assertFalse(page.has_publish_permission(request.user))
650649

651650
items = request.toolbar.get_left_items() + request.toolbar.get_right_items()
652651
# Logo + page-menu + admin-menu + color scheme + logout

cms/utils/page_permissions.py

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
PAGE_ADD_CODENAME = get_model_permission_codename(Page, 'add')
1717
PAGE_CHANGE_CODENAME = get_model_permission_codename(Page, 'change')
1818
PAGE_DELETE_CODENAME = get_model_permission_codename(Page, 'delete')
19-
PAGE_PUBLISH_CODENAME = get_model_permission_codename(Page, 'publish')
2019
PAGE_VIEW_CODENAME = get_model_permission_codename(Page, 'view')
2120

2221

@@ -29,8 +28,6 @@
2928
'delete_page': [PAGE_CHANGE_CODENAME, PAGE_DELETE_CODENAME],
3029
'delete_page_translatio F438 n': [PAGE_CHANGE_CODENAME, PAGE_DELETE_CODENAME],
3130
'move_page': [PAGE_CHANGE_CODENAME],
32-
'publish_page': [PAGE_CHANGE_CODENAME, PAGE_PUBLISH_CODENAME],
33-
'revert_page_to_live': [PAGE_CHANGE_CODENAME]
3431
}
3532

3633

@@ -199,18 +196,6 @@ def user_can_delete_page_translation(user, page, language, site=None):
199196
return True
200197

201198

202-
@cached_func
203-
@auth_permission_required('publish_page')
204-
def user_can_publish_page(user, page, site=None):
205-
has_perm = has_generic_permission(
206-
page=page,
207-
user=user,
208-
action='publish_page',
209-
site=site,
210-
)
211-
return has_perm
212-
213-
214199
@cached_func
215200
@auth_permission_required('change_page_advanced_settings')
216201
def user_can_change_page_advanced_settings(user, page, site=None):
@@ -431,21 +416,6 @@ def get_move_page_id_list(user, site, check_global=True, use_cache=True):
431416
return page_ids
432417

433418

434-
def get_publish_id_list(user, site, check_global=True, use_cache=True):
435-
"""
436-
Give a list of page where the user has publish rights or the string "All" if
437-
the user has all rights.
438-
"""
439-
page_ids = _get_page_ids_for_action(
440-
user=user,
441-
site=site,
442-
action='publish_page',
443-
check_global=check_global,
444-
use_cache=use_cache,
445-
)
446-
return page_ids
447-
448-
449419
def get_view_id_list(user, site, check_global=True, use_cache=True):
450420
"""Give a list of pages which user can view.
451421
"""
@@ -472,7 +442,6 @@ def has_generic_permission(page, user, action, site=None, check_global=True):
472442
'delete_page': get_delete_id_list,
473443
'delete_page_translation': get_delete_id_list,
474444
'move_page': get_move_page_id_list,
475-
'publish_page': get_publish_id_list,
476445
'view_page': get_view_id_list,
477446
}
478447

0 commit comments

Comments
 (0)
0