From 6455776a42cbde7ea557c8e845bc68fd72920a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Thu, 11 Jun 2015 11:03:32 +0200 Subject: [PATCH] misc: make sure admin permissions are set as strings (#7529) --- tests/test_backoffice_pages.py | 8 ++++++++ wcs/publisher.py | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/tests/test_backoffice_pages.py b/tests/test_backoffice_pages.py index 01abd75bc..53a95345e 100644 --- a/tests/test_backoffice_pages.py +++ b/tests/test_backoffice_pages.py @@ -140,6 +140,14 @@ def test_backoffice_role_user(pub): assert not 'Forms Workshop' in resp.body assert 'Workflows Workshop' in resp.body + # check role id int->str migration + pub.cfg['admin-permissions'] = {'workflows': [int(x.id) for x in Role.select()]} + pub.write_cfg() + resp = app.get('/backoffice/') + assert 'Management' in resp.body + assert not 'Forms Workshop' in resp.body + assert 'Workflows Workshop' in resp.body + def test_backoffice_forms(pub): create_superuser(pub) create_environment(set_receiver=False) diff --git a/wcs/publisher.py b/wcs/publisher.py index 2c188f669..3bd905f6e 100644 --- a/wcs/publisher.py +++ b/wcs/publisher.py @@ -130,6 +130,13 @@ class WcsPublisher(StubWcsPublisher): if request: request.response.charset = self.site_charset + # make sure permissions are set using strings + if self.cfg.get('admin-permissions'): + for key in self.cfg['admin-permissions'].keys(): + if not self.cfg['admin-permissions'][key]: + continue + self.cfg['admin-permissions'][key] = [str(x) for x in self.cfg['admin-permissions'][key]] + import wcs.workflows wcs.workflows.load_extra()