From 6b296107340ea81995374c3946c56caff04e11e6 Mon Sep 17 00:00:00 2001 From: Davide Moro <dmoro@tierratelematics.com> Date: Sat, 6 Jan 2018 23:47:23 +0100 Subject: [PATCH 1/3] add repoze.workflow.has_permission --- CHANGES.rst | 17 +++++++++++++++++ docs/configuration.rst | 2 +- repoze/workflow/__init__.py | 1 + repoze/workflow/security.py | 5 +++++ repoze/workflow/tests/test_security.py | 20 ++++++++++++++++++++ setup.py | 1 + 6 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 repoze/workflow/security.py create mode 100644 repoze/workflow/tests/test_security.py diff --git a/CHANGES.rst b/CHANGES.rst index e955db2..703e4fe 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,23 @@ repoze.workflow Changelog ========================= +1.0b2 (unreleased) +------------------ + +Features +~~~~~~~~ + +- Add ``repoze.workflow.has_permission`` since as of Pyramid 1.5 the + "pyramid.security.has_permission" API is now deprecated and it will + be removed in Pyramid 1.8 + +Housekeeping +~~~~~~~~~~~~ + +- Update permission checker example in ``docs/configuration.rst`` + +- Add mock library to test requirements + 1.0b1 (2014-12-11) ------------------ diff --git a/docs/configuration.rst b/docs/configuration.rst index eed245e..ab3a121 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -64,7 +64,7 @@ workflow. state_attr="state" initial_state="private" content_types=".dummy.IContent" - permission_checker="repoze.bfg.security.has_permission" + permission_checker="repoze.workflow.has_permission" > <state name="private" diff --git a/repoze/workflow/__init__.py b/repoze/workflow/__init__.py index 221beaa..97f4d99 100644 --- a/repoze/workflow/__init__.py +++ b/repoze/workflow/__init__.py @@ -1,3 +1,4 @@ +from repoze.workflow.security import has_permission # API from repoze.workflow.workflow import Workflow # API from repoze.workflow.workflow import WorkflowError #API from repoze.workflow.workflow import get_workflow #API diff --git a/repoze/workflow/security.py b/repoze/workflow/security.py new file mode 100644 index 0000000..3fa1752 --- /dev/null +++ b/repoze/workflow/security.py @@ -0,0 +1,5 @@ +def has_permission(permission, context, request): + """ Default permission checker """ + return request.has_permission( + permission, + context=context) diff --git a/repoze/workflow/tests/test_security.py b/repoze/workflow/tests/test_security.py new file mode 100644 index 0000000..c3856d3 --- /dev/null +++ b/repoze/workflow/tests/test_security.py @@ -0,0 +1,20 @@ +import unittest + + +class HasPermissionTests(unittest.TestCase): + + def _get_has_permission(self): + from repoze.workflow import has_permission + return has_permission + + def test_has_permission(self): + import mock + has_permission = self._get_has_permission() + permission = 'edit' + context = object() + request = mock.MagicMock() + has_permission(permission, context, request) + self.assertEqual( + request.has_permission.assert_called_once_with( + permission, context=context), + None) diff --git a/setup.py b/setup.py index cc70f7a..d4ef63e 100644 --- a/setup.py +++ b/setup.py @@ -41,6 +41,7 @@ def _read_file(name): tests_require = [ 'zope.testing', + 'mock', ] testing_extras = tests_require + ['nose', 'coverage'] From 9d3f67030f50c3406fcda3644c785fa26cf9b8ce Mon Sep 17 00:00:00 2001 From: Davide Moro <dmoro@tierratelematics.com> Date: Sun, 7 Jan 2018 00:11:30 +0100 Subject: [PATCH 2/3] add missing python interpreters in travis CI --- .travis.yml | 9 +++++++++ CHANGES.rst | 2 ++ 2 files changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index f3314ad..f67a143 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,15 @@ language: python sudo: false +python: + - "2.6" + - "2.7" + - "3.2" + - "3.3" + - "3.4" + - "pypy" + - "pypy3" + env: - TOXENV=py26 - TOXENV=py27 diff --git a/CHANGES.rst b/CHANGES.rst index 703e4fe..b64192b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -18,6 +18,8 @@ Housekeeping - Add mock library to test requirements +- Add missing python interpreters to travis CI + 1.0b1 (2014-12-11) ------------------ From c401f5e7f922ddac63828f8919fde4ef60395823 Mon Sep 17 00:00:00 2001 From: Davide Moro <dmoro@tierratelematics.com> Date: Sun, 7 Jan 2018 00:13:55 +0100 Subject: [PATCH 3/3] Revert "add missing python interpreters in travis CI" This reverts commit 9d3f67030f50c3406fcda3644c785fa26cf9b8ce. --- .travis.yml | 9 --------- CHANGES.rst | 2 -- 2 files changed, 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index f67a143..f3314ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,15 +2,6 @@ language: python sudo: false -python: - - "2.6" - - "2.7" - - "3.2" - - "3.3" - - "3.4" - - "pypy" - - "pypy3" - env: - TOXENV=py26 - TOXENV=py27 diff --git a/CHANGES.rst b/CHANGES.rst index b64192b..703e4fe 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -18,8 +18,6 @@ Housekeeping - Add mock library to test requirements -- Add missing python interpreters to travis CI - 1.0b1 (2014-12-11) ------------------