当前位置: 首页>>代码示例>>Python>>正文


Python UserPagePermissionsProxy.for_page方法代码示例

本文整理汇总了Python中wagtail.wagtailcore.models.UserPagePermissionsProxy.for_page方法的典型用法代码示例。如果您正苦于以下问题:Python UserPagePermissionsProxy.for_page方法的具体用法?Python UserPagePermissionsProxy.for_page怎么用?Python UserPagePermissionsProxy.for_page使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在wagtail.wagtailcore.models.UserPagePermissionsProxy的用法示例。


在下文中一共展示了UserPagePermissionsProxy.for_page方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: unpublish

# 需要导入模块: from wagtail.wagtailcore.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.wagtailcore.models.UserPagePermissionsProxy import for_page [as 别名]
def unpublish(request, page_id):
    page = get_object_or_404(Page, id=page_id).specific

    user_perms = UserPagePermissionsProxy(request.user)
    if not user_perms.for_page(page).can_unpublish():
        raise PermissionDenied

    next_url = get_valid_next_url_from_request(request)

    if request.method == 'POST':
        include_descendants = request.POST.get("include_descendants", False)

        page.unpublish()

        if include_descendants:
            live_descendant_pages = page.get_descendants().live().specific()
            for live_descendant_page in live_descendant_pages:
                if user_perms.for_page(live_descendant_page).can_unpublish():
                    live_descendant_page.unpublish()

        messages.success(request, _("Page '{0}' unpublished.").format(page.title), buttons=[
            messages.button(reverse('wagtailadmin_pages:edit', args=(page.id,)), _('Edit'))
        ])

        if next_url:
            return redirect(next_url)
        return redirect('wagtailadmin_explore', page.get_parent().id)

    return render(request, 'wagtailadmin/pages/confirm_unpublish.html', {
        'page': page,
        'next': next_url,
        'live_descendant_count': page.get_descendants().live().count(),
    })
开发者ID:bmihelac,项目名称:wagtail,代码行数:35,代码来源:pages.py

示例2: unpublish

# 需要导入模块: from wagtail.wagtailcore.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.wagtailcore.models.UserPagePermissionsProxy import for_page [as 别名]
def unpublish(request, page_id):
    page = get_object_or_404(Page, id=page_id).specific

    user_perms = UserPagePermissionsProxy(request.user)
    if not user_perms.for_page(page).can_unpublish():
        raise PermissionDenied

    next_url = get_valid_next_url_from_request(request)

    if request.method == "POST":
        include_descendants = request.POST.get("include_descendants", False)

        page.unpublish()

        if include_descendants:
            live_descendant_pages = page.get_descendants().live().specific()
            for live_descendant_page in live_descendant_pages:
                if user_perms.for_page(live_descendant_page).can_unpublish():
                    live_descendant_page.unpublish()

        messages.success(
            request,
            _("Page '{0}' unpublished.").format(page.get_admin_display_title()),
            buttons=[messages.button(reverse("wagtailadmin_pages:edit", args=(page.id,)), _("Edit"))],
        )

        if next_url:
            return redirect(next_url)
        return redirect("wagtailadmin_explore", page.get_parent().id)

    return render(
        request,
        "wagtailadmin/pages/confirm_unpublish.html",
        {"page": page, "next": next_url, "live_descendant_count": page.get_descendants().live().count()},
    )
开发者ID:mvantellingen,项目名称:wagtail,代码行数:37,代码来源:pages.py

示例3: find_student_index_page

# 需要导入模块: from wagtail.wagtailcore.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.wagtailcore.models.UserPagePermissionsProxy import for_page [as 别名]
def find_student_index_page(user):
    """Look for the student index page: a page of type StandardIndex with slug "students" where this user can add pages"""
    user_perms = UserPagePermissionsProxy(user)

    for page in StandardIndex.objects.filter(slug='students'):
        if user_perms.for_page(page).can_add_subpage():
            return page

    raise Exception('No usable student index found (using the StandardIndex page type and with add permission for students)')
开发者ID:spapas,项目名称:verdant-rca,代码行数:11,代码来源:admin_views.py

示例4: find_rca_now_index_page

# 需要导入模块: from wagtail.wagtailcore.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.wagtailcore.models.UserPagePermissionsProxy import for_page [as 别名]
def find_rca_now_index_page(user):
    """Look for the RCA Now index page: a page of type RcaNowIndex where this user can add pages"""
    user_perms = UserPagePermissionsProxy(user)

    for page in RcaNowIndex.objects.all():
        if user_perms.for_page(page).can_add_subpage():
            return page

    raise Exception('No usable RCA Now section found (using the RcaNowIndex page type and with add permission for students)')
开发者ID:spapas,项目名称:verdant-rca,代码行数:11,代码来源:admin_views.py

示例5: push_to_intranet

# 需要导入模块: from wagtail.wagtailcore.models import UserPagePermissionsProxy [as 别名]
# 或者: from wagtail.wagtailcore.models.UserPagePermissionsProxy import for_page [as 别名]
def push_to_intranet(request, page_id):
    # Get page
    page = get_object_or_404(Page, id=page_id)

    # User must have publish permission
    user_perms = UserPagePermissionsProxy(request.user)
    page_perms = user_perms.for_page(page)
    if not page_perms.can_publish():
        raise PermissionDenied

    if request.method == "POST":
        # Perform request
        url = settings.INTRANET_PUSH_URL.format(
            type=page._meta.app_label + '.' + page.__class__.__name__,
            id=page.id,
        )
        response = requests.post(url)

        if response.status_code == 200:
            intranet_url = response.json()['public_url']

            # Success message
            message = "Successfully pushed '{0}' to the intranet.".format(page.title)
            messages.success(request, message, buttons=[
                messages.button(
                    intranet_url,
                    'View on intranet'
                ),
            ])
        else:
            # Error message
            message = "Error received while pushing '{0}' to the intranet. (status code: {1})".format(page.title, request.status_code)
            messages.error(request, message)

        return redirect('wagtailadmin_explore', page.get_parent().id)

    return render(request, 'rca/admin/push_to_intranet.html', {
        'page': page,
    })
开发者ID:spapas,项目名称:verdant-rca,代码行数:41,代码来源:admin_views.py


注:本文中的wagtail.wagtailcore.models.UserPagePermissionsProxy.for_page方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。