From 646717f232894298147dde5ff64bf89087a73a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 9 Nov 2015 14:38:16 +0100 Subject: [PATCH] backoffice: redirect formdata to submission page if appropriate (#8926) --- tests/test_backoffice_pages.py | 5 +++++ wcs/backoffice/management.py | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/tests/test_backoffice_pages.py b/tests/test_backoffice_pages.py index 8c96943..51da877 100644 --- a/tests/test_backoffice_pages.py +++ b/tests/test_backoffice_pages.py @@ -752,6 +752,11 @@ def test_backoffice_submission_drafts(pub): resp = app.get('/backoffice/submission/') assert '>Mail #%s' % formdata_no in resp.body + # check it can also be accessed using its final URL + resp2 = app.get('/backoffice/management/%s/%s/' % (formdef.url_name, formdata_no)) + assert resp2.location == 'http://example.net/backoffice/submission/%s/%s' % ( + formdef.url_name, formdata_no) + resp = resp.click('#%s' % formdata_no) resp = resp.follow() assert tracking_code in resp.body diff --git a/wcs/backoffice/management.py b/wcs/backoffice/management.py index 1d4d6f5..44f1e28 100644 --- a/wcs/backoffice/management.py +++ b/wcs/backoffice/management.py @@ -1283,6 +1283,14 @@ class FormBackOfficeStatusPage(FormStatusPage): return html_top('management', title) def _q_index(self): + if self.filled.status == 'draft': + if self.filled.backoffice_submission: + for role in get_request().user.roles or []: + if role in self.formdef.backoffice_submission_roles: + return redirect('../../../submission/%s/%s' % ( + self.formdef.url_name, self.filled.id)) + raise errors.AccessForbiddenError() + get_response().filter['sidebar'] = self.get_sidebar() return self.status() -- 2.6.2