[Checkins] SVN: z3c.formwidget.query/trunk/s Avoid hard dependency on AccessControl

Hano Schlichting cvs-admin at zope.org
Thu May 24 18:15:32 UTC 2012


Log message for revision 126492:
  Avoid hard dependency on AccessControl
  

Changed:
  U   z3c.formwidget.query/trunk/setup.py
  U   z3c.formwidget.query/trunk/src/z3c/formwidget/query/README.txt
  U   z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py

-=-
Modified: z3c.formwidget.query/trunk/setup.py
===================================================================
--- z3c.formwidget.query/trunk/setup.py	2012-05-24 17:56:17 UTC (rev 126491)
+++ z3c.formwidget.query/trunk/setup.py	2012-05-24 18:15:28 UTC (rev 126492)
@@ -21,6 +21,7 @@
       namespace_packages=['z3c', 'z3c.formwidget'],
       extras_require = dict(test=['zope.app.testing',
                                   'zope.testing',
+                                  'z3c.form [test]'
                                   ]),
       install_requires = ['setuptools',
                           'z3c.form',

Modified: z3c.formwidget.query/trunk/src/z3c/formwidget/query/README.txt
===================================================================
--- z3c.formwidget.query/trunk/src/z3c/formwidget/query/README.txt	2012-05-24 17:56:17 UTC (rev 126491)
+++ z3c.formwidget.query/trunk/src/z3c/formwidget/query/README.txt	2012-05-24 18:15:28 UTC (rev 126492)
@@ -341,12 +341,17 @@
   ...         return object.permission == permission
 
   >>> thread_local.interaction = SimpleSecurityPolicy()
-  
+
 Let's define a permission aware object
 
-  >>> from AccessControl.interfaces import IRoleManager
+  >>> HAS_AC = True
+  >>> try:
+  ...     from AccessControl.interfaces import IRoleManager
+  ... except ImportError:
+  ...     HAS_AC = False
   >>> class Document(object):
-  ...     interface.implements(IRoleManager)
+  ...     if HAS_AC:
+  ...         interface.implements(IRoleManager)
   ...
   ...     name = None
   ...     permission = None
@@ -404,7 +409,10 @@
   >>> request = TestRequest()
 
   >>> widget = setupWidget(document, person, request)
-  >>> u'Secret' not in widget()
+  >>> if HAS_AC:
+  ...     u'Secret' not in widget()
+  ... else:
+  ...     print True
   True
 
 And now, let's try with the public one
@@ -418,7 +426,7 @@
   >>> u'Public' in widget()
   True
 
-  
+
 Todo
 ----
 

Modified: z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py
===================================================================
--- z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py	2012-05-24 17:56:17 UTC (rev 126491)
+++ z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py	2012-05-24 18:15:28 UTC (rev 126492)
@@ -7,7 +7,6 @@
 
 from zope.schema.vocabulary import SimpleVocabulary
 from zope.schema.interfaces import ISource, IContextSourceBinder
-from AccessControl.interfaces import IRoleManager
 
 import z3c.form.interfaces
 import z3c.form.button
@@ -20,6 +19,13 @@
 
 from z3c.formwidget.query import MessageFactory as _
 
+HAS_AC = True
+try:
+    from AccessControl.interfaces import IRoleManager
+except ImportError:
+    HAS_AC = False
+
+
 class SourceTerms(z3c.form.term.Terms):
     
     def __init__(self, context, request, form, field, widget, source):
@@ -139,7 +145,7 @@
             for value in selection:
                 if not value:
                     continue
-                if IRoleManager.providedBy(value):
+                if HAS_AC and IRoleManager.providedBy(value):
                     if not checkPermission('zope2.View', value):
                         continue
                 try:



More information about the checkins mailing list