本文整理汇总了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(),
})
示例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()},
)
示例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)')
示例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)')
示例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,
})