from django.views.decorators.vary import vary_on_headers from wagtail.admin import messages from wagtail.admin.auth import PermissionPolicyChecker, permission_denied from wagtail.admin.forms.search import SearchForm from wagtail.admin.models import popular_tags_for_model from wagtail.core.models import Collection, Site from wagtail.images import get_image_model from wagtail.images.exceptions import InvalidFilterSpecError from wagtail.images.forms import URLGeneratorForm, get_image_form from wagtail.images.models import Filter, SourceImageIOError from wagtail.images.permissions import permission_policy from wagtail.images.views.serve import generate_signature from wagtail.search import index as search_index permission_checker = PermissionPolicyChecker(permission_policy) @permission_checker.require_any('add', 'change', 'delete') @vary_on_headers('X-Requested-With') def index(request): Image = get_image_model() # Get images (filtered by user permission) images = permission_policy.instances_user_has_any_permission_for( request.user, ['change', 'delete']).order_by('-created_at') # Search query_string = None if 'q' in request.GET: form = SearchForm(request.GET, placeholder=_("Search images"))
) from wagtail.admin.modal_workflow import render_modal_workflow from wagtail.admin.views.generic import CreateView, DeleteView, EditView, IndexView from wagtail.coreutils import resolve_model_string from wagtail.models import ( Page, Task, TaskState, UserPagePermissionsProxy, Workflow, WorkflowState, ) from wagtail.permissions import task_permission_policy, workflow_permission_policy from wagtail.workflows import get_task_types task_permission_checker = PermissionPolicyChecker(task_permission_policy) class Index(IndexView): permission_policy = workflow_permission_policy model = Workflow context_object_name = "workflows" template_name = "wagtailadmin/workflows/index.html" add_url_name = "wagtailadmin_workflows:add" edit_url_name = "wagtailadmin_workflows:edit" index_url_name = "wagtailadmin_workflows:index" page_title = _("Workflows") add_item_label = _("Add a workflow") header_icon = "tasks" def show_disabled(self):
from django.utils.translation import gettext_lazy from wagtail.admin import messages from wagtail.admin.auth import PermissionPolicyChecker from wagtail.documents import get_document_model from wagtail.documents.permissions import permission_policy as document_permission_policy from wagtail.documents.views.documents import delete as document_delete_view from wagtail.images import get_image_model from wagtail.images.permissions import permission_policy as image_permission_policy from wagtail.images.views.images import delete as image_delete_view from wagtailmedia.models import get_media_model from wagtailmedia.permissions import permission_policy as media_permission_policy from wagtailmedia.views.media import delete as media_delete_view document_permission_checker = PermissionPolicyChecker(document_permission_policy) image_permission_checker = PermissionPolicyChecker(image_permission_policy) media_permission_checker = PermissionPolicyChecker(media_permission_policy) MESSAGE = gettext_lazy('Cannot delete object if used by any page') @image_permission_checker.require('delete') def image_safe_delete(request, image_id): image = get_object_or_404(get_image_model(), pk=image_id) if image.get_usage().exists(): messages.error(request, MESSAGE) return redirect('wagtailimages:edit', image_id=image_id) return image_delete_view(request, image_id)