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