[Checkins] SVN: grokcore.view/trunk/ Fixed the buildout versions.

Souheil CHELFOUH souheil at chelfouh.com
Mon Nov 1 16:06:53 EDT 2010


Log message for revision 118113:
  Fixed the buildout versions.
  Moved the 'make_checker' from ``grok`` to ``grokcore.view`` 
  

Changed:
  U   grokcore.view/trunk/buildout.cfg
  U   grokcore.view/trunk/src/grokcore/view/__init__.py
  U   grokcore.view/trunk/src/grokcore/view/interfaces.py
  U   grokcore.view/trunk/src/grokcore/view/util.py

-=-
Modified: grokcore.view/trunk/buildout.cfg
===================================================================
--- grokcore.view/trunk/buildout.cfg	2010-11-01 20:04:11 UTC (rev 118112)
+++ grokcore.view/trunk/buildout.cfg	2010-11-01 20:06:53 UTC (rev 118113)
@@ -10,11 +10,11 @@
 
 [versions]
 grokcore.view = 
-martian = 0.12
-grokcore.component = 2.0
+martian = 0.13
+grokcore.component = 2.1
 zope.app.wsgi = 3.9.2
+grokcore.security = 1.5
 
-
 [interpreter]
 recipe = zc.recipe.egg
 eggs = grokcore.view

Modified: grokcore.view/trunk/src/grokcore/view/__init__.py
===================================================================
--- grokcore.view/trunk/src/grokcore/view/__init__.py	2010-11-01 20:04:11 UTC (rev 118112)
+++ grokcore.view/trunk/src/grokcore/view/__init__.py	2010-11-01 20:06:53 UTC (rev 118113)
@@ -25,7 +25,7 @@
 from grokcore.view.components import DirectoryResource
 from grokcore.view.directive import (
     layer, template, templatedir, skin, path, view)
-from grokcore.view.util import url
+from grokcore.view.util import url, make_checker
 
 # Import this module so that it's available as soon as you import the
 # 'grokcore.view' package.  Useful for tests and interpreter examples.

Modified: grokcore.view/trunk/src/grokcore/view/interfaces.py
===================================================================
--- grokcore.view/trunk/src/grokcore/view/interfaces.py	2010-11-01 20:04:11 UTC (rev 118112)
+++ grokcore.view/trunk/src/grokcore/view/interfaces.py	2010-11-01 20:06:53 UTC (rev 118113)
@@ -65,6 +65,13 @@
         An optional argument 'data' can be a dictionary that is converted
         into a query string appended to the URL."""
 
+    def make_checker(factory, view_factory, permission, method_names=None):
+        """Make a checker for a view_factory associated with factory.
+
+        These could be one and the same for normal views, or different
+        in case we make method-based views such as for JSON and XMLRPC.
+        """
+
     def PageTemplate(template):
         """Create a Grok PageTemplate object from ``template`` source
         text.  This can be used for inline PageTemplates."""

Modified: grokcore.view/trunk/src/grokcore/view/util.py
===================================================================
--- grokcore.view/trunk/src/grokcore/view/util.py	2010-11-01 20:04:11 UTC (rev 118112)
+++ grokcore.view/trunk/src/grokcore/view/util.py	2010-11-01 20:06:53 UTC (rev 118113)
@@ -14,9 +14,11 @@
 """Grok utility functions.
 """
 import urllib
+from grokcore.security.util import check_permission
 from zope.component import getMultiAdapter
+from zope.security.checker import NamesChecker, defineChecker
+from zope.traversing.browser.absoluteurl import _safe as SAFE_URL_CHARACTERS
 from zope.traversing.browser.interfaces import IAbsoluteURL
-from zope.traversing.browser.absoluteurl import _safe as SAFE_URL_CHARACTERS
 
 
 def url(request, obj, name=None, data=None):
@@ -39,3 +41,15 @@
                 or item for item in v]
 
     return url + '?' + urllib.urlencode(data, doseq=True)
+
+
+def make_checker(factory, view_factory, permission, method_names=None):
+    if method_names is None:
+        method_names = ['__call__']
+    if permission is not None:
+        check_permission(factory, permission)
+    if permission is None or permission == 'zope.Public':
+        checker = NamesChecker(method_names)
+    else:
+        checker = NamesChecker(method_names, permission)
+    defineChecker(view_factory, checker)



More information about the checkins mailing list