Use PermissionCheckedMixin in place of user_passes_test

pull/9948/head
Matt Westcott 2023-06-23 11:35:30 +01:00 zatwierdzone przez Matt Westcott
rodzic d554cbe310
commit 9abd773cd3
1 zmienionych plików z 13 dodań i 4 usunięć
wagtail/admin/views/pages

Wyświetl plik

@ -4,12 +4,12 @@ from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.core.paginator import InvalidPage, Paginator
from django.http import Http404
from django.utils.decorators import method_decorator
from django.views.generic import TemplateView
from wagtail.admin.auth import user_has_any_page_permission, user_passes_test
from wagtail.admin.forms.search import SearchForm
from wagtail.admin.views.generic.permissions import PermissionCheckedMixin
from wagtail.models import Page
from wagtail.permission_policies.pages import PagePermissionPolicy
from wagtail.search.query import MATCH_ALL
from wagtail.search.utils import parse_query_string
@ -39,8 +39,17 @@ def page_filter_search(q, pages, all_pages=None, ordering=None):
return pages, all_pages
class BaseSearchView(TemplateView):
@method_decorator(user_passes_test(user_has_any_page_permission))
class BaseSearchView(PermissionCheckedMixin, TemplateView):
permission_policy = PagePermissionPolicy()
any_permission_required = {
"add",
"change",
"publish",
"bulk_delete",
"lock",
"unlock",
}
def get(self, request):
pages = self.all_pages = (
Page.objects.all().prefetch_related("content_type").specific()