Hi,<br>I&#39;m trying to reproduce the example given in zope.app.homefolder/trunk/src/zope/app/homefolder/README.txt and I have some difficulties to understand. The error traceback seems to say that principal cannot be traversed to the homefolder.<br>
<br>The used template <a href="http://test_homefolder.pt">test_homefolder.pt</a> looks like:<br>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&quot;&gt;<br>
&lt;html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;<br>&lt;head&gt;<br>&lt;title&gt;PageletTestLayout&lt;/title&gt;<br>&lt;/head&gt;<br>
&lt;body&gt;<br>&lt;p<br>   tal:content=&quot;request/principal/homefolder&quot;&gt;<br>&lt;/p&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>In configure.zcml:<br>&lt;z3c:pagelet<br>      name=&quot;search_display.html&quot;<br>
      for=&quot;zope.app.folder.interfaces.IFolder&quot;<br>      permission=&quot;adama.site_access&quot;<br>      layer=&quot;z3c.layer.pagelet.IPageletBrowserLayer&quot;<br>      class=&quot;.login.SearchAddForm&quot;<br>
/&gt;<br><br>&lt;z3c:layout<br>        for=&quot;.login.SearchAddForm&quot;<br>        layer=&quot;z3c.layer.pagelet.IPageletBrowserLayer&quot;<br>        template=&quot;<a href="http://test_homefolder.pt">test_homefolder.pt</a>&quot;<br>
/&gt;<br><br>Traceback:<br>  File &quot;/home/simon/.buildout/eggs/zope.tales-3.4.0-py2.5.egg/zope/tales/tales.py&quot;, line 696, in evaluate<br>    return expression(self)<br>   - /home/simon/ADAMA/Src/gui/z3c_auth/src/z3c_auth/browser/<a href="http://test_homefolder.pt">test_homefolder.pt</a><br>
   - Line 10, Column 0<br>   - Expression: &lt;PathExpr standard:u&#39;request/principal/homefolder&#39;&gt;<br>   - Names:<br>      {&#39;args&#39;: (),<br>       &#39;context&#39;: &lt;zope.site.folder.Folder object at 0x90da9ec&gt;,<br>
       &#39;default&#39;: &lt;object object at 0xb7ded728&gt;,<br>       &#39;loop&#39;: {},<br>       &#39;nothing&#39;: None,<br>       &#39;options&#39;: {},<br>       &#39;repeat&#39;: {},<br>       &#39;request&#39;: &lt;zope.publisher.browser.BrowserRequest instance URL=<a href="http://localhost:9060/++skin++PageletTestSkin/mysite/@@search.html">http://localhost:9060/++skin++PageletTestSkin/mysite/@@search.html</a>&gt;,<br>
       &#39;template&#39;: &lt;z3c.ptcompat.ViewPageTemplateFile object at 0x97ab42c&gt;,<br>       &#39;view&#39;: &lt;zope.app.publisher.browser.viewmeta.SearchAddForm object at 0x9c2566c&gt;,<br>       &#39;views&#39;: &lt;zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0x9c25dec&gt;}<br>
  File &quot;/home/simon/.buildout/eggs/zope.tales-3.4.0-py2.5.egg/zope/tales/expressions.py&quot;, line 217, in __call__<br>    return self._eval(econtext)<br>  File &quot;/home/simon/.buildout/eggs/zope.tales-3.4.0-py2.5.egg/zope/tales/expressions.py&quot;, line 194, in _eval<br>
    ob = self._subexprs[-1](econtext)<br>  File &quot;/home/simon/.buildout/eggs/zope.tales-3.4.0-py2.5.egg/zope/tales/expressions.py&quot;, line 124, in _eval<br>    ob = self._traverser(ob, element, econtext)<br>  File &quot;/home/simon/.buildout/eggs/zope.pagetemplate-3.5.0-py2.5.egg/zope/pagetemplate/engine.py&quot;, line 68, in __call__<br>
    request=request)<br>  File &quot;/home/simon/.buildout/eggs/zope.traversing-3.7.1-py2.5.egg/zope/traversing/adapters.py&quot;, line 139, in traversePathElement<br>    return traversable.traverse(nm, further_path)<br>   - __traceback_info__: (Principal(u&#39;users.a&#39;), &#39;homefolder&#39;)<br>
  File &quot;/home/simon/.buildout/eggs/zope.traversing-3.7.1-py2.5.egg/zope/traversing/adapters.py&quot;, line 53, in traverse<br>    raise LocationError(subject, name)<br>   - __traceback_info__: (Principal(u&#39;users.a&#39;), &#39;homefolder&#39;, [])<br>
LocationError: (Principal(u&#39;users.a&#39;), &#39;homefolder&#39;)<br><br>Thanks for any help<br>Simon<br>