documented pylons' "strict_c".
authorArmin Ronacher <armin.ronacher@active-4.com>
Mon, 7 Jan 2008 22:26:13 +0000 (23:26 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Mon, 7 Jan 2008 22:26:13 +0000 (23:26 +0100)
--HG--
branch : trunk

docs/src/frameworks.txt
jinja/utils.py

index 96a1cfa8c9d66814d706bd7e1a957bc6d7b93c50..6511cf7f38c69d2449c4bbf46888b6c6854bde4e 100644 (file)
@@ -87,6 +87,16 @@ It's meant to be used as replacement for the turbogears package name but
 Jinja assumes that the name of the template does not include the package
 path.
 
+.. admonition:: Note
+
+    Special note for pylons users.  Jinja will be unable to request attributes
+    from the special `c` object, unless you set `strict_c` to `True` in the
+    `environment.py`:
+
+    .. sourcecode:: python
+
+        return pylons.config.Config(tmpl_options, map, paths, strict_c=True)
+
 You can then render the template in the view like this:
 
 .. sourcecode:: python
index 9444c5cb39048bf3bd321d38670eb477e2803128..acd2018f30a4bf3aae025382c08a12d8d60deaa0 100644 (file)
@@ -202,10 +202,7 @@ def get_attribute(obj, name):
         raise SecurityException('not allowed to access function attributes')
 
     r = _getattr(obj, 'jinja_allowed_attributes', None)
-    # the empty string check is for pylons which returns empty strings on
-    # it's stacked something foobar object
-    if r not in (None, '') and name not in r:
-        print "broken here"
+    if r is not None and name not in r:
         raise SecurityException('disallowed attribute accessed')
 
     # attribute lookups convert unicode strings to ascii bytestrings.