summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/narr/models.rst13
-rw-r--r--docs/narr/security.rst12
2 files changed, 25 insertions, 0 deletions
diff --git a/docs/narr/models.rst b/docs/narr/models.rst
index c07dfbe18..e9eddf39b 100644
--- a/docs/narr/models.rst
+++ b/docs/narr/models.rst
@@ -110,6 +110,19 @@ root node says it implements the ``ILocation`` :term:`interface`,
will dynamically assign a ``__name__`` and a ``__parent__`` to it,
recursively.
+.. note::
+ In order to use this feature, you must register the
+ ``WrappingModelGraphTraverser`` as the traversal policy, rather
+ than the standard ``ModelGraphTraverser``. E.g., your application
+ will need to have the following in its ``configure.zcml``::
+
+ <adapter
+ factory="repoze.bfg.traversal.WrappingModelGraphTraverser"
+ provides="repoze.bfg.interfaces.ITraverserFactory"
+ for="*"
+ />
+
+
If you choose to make use of the location-based dynamic assignment of
``__parent__`` and ``__name__``, the root node must have a
``__parent__`` that is ``None``, a ``__name__`` with any value, and it
diff --git a/docs/narr/security.rst b/docs/narr/security.rst
index 91c7240dc..590b90b2e 100644
--- a/docs/narr/security.rst
+++ b/docs/narr/security.rst
@@ -179,6 +179,18 @@ during traversal in a *location proxy* that has both the ``__name__``
and ``__parent__`` attributes, but otherwise acts the same as your
model object.
+.. note::
+ In order to use this feature, you must register the
+ ``WrappingModelGraphTraverser`` as the traversal policy, rather
+ than the standard ``ModelGraphTraverser``. E.g., your application
+ will need to have the following in its ``configure.zcml``::
+
+ <adapter
+ factory="repoze.bfg.traversal.WrappingModelGraphTraverser"
+ provides="repoze.bfg.interfaces.ITraverserFactory"
+ for="*"
+ />
+
You can of course supply ``__name__`` and ``__parent__`` attributes
explicitly on all of your model objects, and no location proxying will
be performed.