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()