0001-public-do-not-redirect-if-template-rendering-is-empt.patch
combo/public/views.py | ||
---|---|---|
440 | 440 |
raise PermissionDenied() |
441 | 441 | |
442 | 442 |
if page.redirect_url: |
443 |
return HttpResponseRedirect( |
|
444 |
page.get_redirect_url(context=request.extra_context_data)) |
|
443 |
try: |
|
444 |
redirect_url = page.get_redirect_url(context=request.extra_context_data) |
|
445 |
except utils.TemplateError: |
|
446 |
raise Http404("combo: can't calculate the redirect URL (template error).") |
|
447 |
else: |
|
448 |
if redirect_url: |
|
449 |
return HttpResponseRedirect(redirect_url) |
|
445 | 450 | |
446 | 451 |
cells = CellBase.get_cells(page=page) |
447 | 452 |
extend_with_parent_cells(cells, hierarchy=pages) |
tests/test_public.py | ||
---|---|---|
197 | 197 |
resp = app.get('/elsewhere/', status=302) |
198 | 198 |
assert resp.location == 'http://example.net' |
199 | 199 | |
200 |
page.redirect_url = '{{test_url}}/ok' |
|
201 |
page.save() |
|
202 |
resp = app.get('/elsewhere/', status=302) |
|
203 |
assert resp.location == 'http://example.net/ok' |
|
204 | ||
205 |
page.redirect_url = '{{unknown_variable}}' |
|
206 |
page.save() |
|
207 |
resp = app.get('/elsewhere/', status=200) |
|
208 | ||
209 |
page.redirect_url = '{% if error %}' |
|
210 |
page.save() |
|
211 |
resp = app.get('/elsewhere/', status=404) |
|
212 | ||
200 | 213 |
def test_page_private_unlogged(app): |
201 | 214 |
Page.objects.all().delete() |
202 | 215 |
page = Page(title='Home', slug='index', template_name='standard', public=False) |
203 |
- |