Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
move Page.check_view_restrictions back into the body of the check_vie…
…w_restrictions hook - it's view-level functionality, not model level, and its presence in the Page model is confusing (and the reason it was there has now been superseded). See https://groups.google.com/d/msg/wagtail/085Z7Mp73gE/dqfxW0sC72IJ
- Loading branch information
Showing
2 changed files
with
21 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,25 @@ | ||
from django.core.urlresolvers import reverse | ||
|
||
from wagtail.wagtailcore import hooks | ||
|
||
def check_view_restrictions(page, request, serve_args, serve_kwargs): | ||
return page.check_view_restrictions(request) | ||
""" | ||
Check whether there are any view restrictions on this page which are | ||
not fulfilled by the given request object. If there are, return an | ||
HttpResponse that will notify the user of that restriction (and possibly | ||
include a password / login form that will allow them to proceed). If | ||
there are no such restrictions, return None | ||
""" | ||
restrictions = page.get_view_restrictions() | ||
|
||
if restrictions: | ||
passed_restrictions = request.session.get('passed_page_view_restrictions', []) | ||
for restriction in restrictions: | ||
if restriction.id not in passed_restrictions: | ||
from wagtail.wagtailcore.forms import PasswordPageViewRestrictionForm | ||
form = PasswordPageViewRestrictionForm(instance=restriction, | ||
initial={'return_url': request.get_full_path()}) | ||
action_url = reverse('wagtailcore_authenticate_with_password', args=[restriction.id, page.id]) | ||
return page.serve_password_required_response(request, form, action_url) | ||
|
||
hooks.register('before_serve_page', check_view_restrictions) |