Permission checking consistency #4305

pull/4326/merge
Sebastian Brestin 2018-03-01 13:23:41 +02:00 zatwierdzone przez Matt Westcott
rodzic 46286e2c84
commit e8ee632b29
3 zmienionych plików z 9 dodań i 2 usunięć

Wyświetl plik

@ -279,6 +279,7 @@ Contributors
* Dan Dietz
* Michael Harrison
* Todd Dembrey
* Sebastian Brestin
Translators
===========

Wyświetl plik

@ -153,7 +153,7 @@ def page_listing_more_buttons(page, page_perms, is_parent=False):
attrs={"title": _("Move page '{title}'").format(title=page.get_admin_display_title())},
priority=10
)
if not page.is_root():
if page_perms.can_copy():
yield Button(
_('Copy'),
reverse('wagtailadmin_pages:copy', args=[page.id]),
@ -174,7 +174,7 @@ def page_listing_more_buttons(page, page_perms, is_parent=False):
attrs={'title': _("Unpublish page '{title}'").format(title=page.get_admin_display_title())},
priority=40
)
if not page.is_root():
if page_perms.can_view_revisions():
yield Button(
_('Revisions'),
reverse('wagtailadmin_pages:revisions_index', args=[page.id]),

Wyświetl plik

@ -1773,6 +1773,9 @@ class PagePermissionTester:
"""
return self.can_delete()
def can_copy(self):
return not self.page_is_root
def can_move_to(self, destination):
# reject the logically impossible cases first
if self.page == destination or destination.is_descendant_of(self.page):
@ -1831,6 +1834,9 @@ class PagePermissionTester:
return True
def can_view_revisions(self):
return not self.page_is_root
class BaseViewRestriction(models.Model):
NONE = 'none'