It seems to work adding this to overrides.zcml

    <content class="zope.app.authentication.principalfolder.Principal">
    <implements
        interface="zope.security.interfaces.IPrincipal"
        />

    <require
        permission="zope.Public"
        interface="zope.security.interfaces.IPrincipal"/>

  </content>


Any hint?

Riccardo


Riccardo Tonon wrote:
Hi,

I've implemented a site that uses both Principal (for external users)and PAU (for intranet users).

It use a customized skin and in the template.pt file I want to print out the username.

The following line works if I'm connected as an external user (defined in principals.zcml)

    <b tal:context="request/principal/title">User</b>

but it raise an error when I'm connected as a PAU user.

    ForbiddenAttribute: ('id', Principal(u'ldap.tonon'))


I attached the complete Traceback error I get.

Please, does anyone have a solution?

Thank you,
Riccardo








------------------------------------------------------------------------

Traceback (most recent call last):
  File "D:\home\Zope-3.2.1\src\zope\publisher\publish.py", line 133, in publish
    result = publication.callObject(request, obj)
  File "D:\home\Zope-3.2.1\src\zope\app\publication\zopepublication.py", line 
161, in callObject
    return mapply(ob, request.getPositionalArguments(), request)
  File "D:\home\Zope-3.2.1\src\zope\publisher\publish.py", line 108, in mapply
    return debug_call(obj, args)
   - __traceback_info__: <bound method ZPTPageEval.index of 
<zope.app.publisher.browser.viewmeta.ZPTPageEval object at 0
  File "D:\home\Zope-3.2.1\src\zope\publisher\publish.py", line 114, in 
debug_call
    return obj(*args)
  File "D:\home\Zope-3.2.1\src\zope\app\zptpage\browser\zptpage.py", line 29, 
in index
    return template.render(request, **kw)
  File "D:\home\Zope-3.2.1\src\zope\app\zptpage\zptpage.py", line 92, in render
    sourceAnnotations=debug_flags.sourceAnnotations)
  File "D:\home\Zope-3.2.1\src\zope\pagetemplate\pagetemplate.py", line 117, in 
pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations)()
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 276, in 
__call__
    self.interpret(self.program)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 351, in 
interpret
    handlers[opcode](self, args)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 907, in 
do_useMacro
    self.interpret(macro)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 351, in 
interpret
    handlers[opcode](self, args)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 537, in 
do_optTag_tal
    self.do_optTag(stuff)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 522, in 
do_optTag
    return self.no_tag(start, program)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 517, in no_tag
    self.interpret(program)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 351, in 
interpret
    handlers[opcode](self, args)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 966, in 
do_defineSlot
    self.interpret(slot)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 351, in 
interpret
    handlers[opcode](self, args)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 907, in 
do_useMacro
    self.interpret(macro)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 351, in 
interpret
    handlers[opcode](self, args)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 537, in 
do_optTag_tal
    self.do_optTag(stuff)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 522, in 
do_optTag
    return self.no_tag(start, program)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 517, in no_tag
    self.interpret(program)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 351, in 
interpret
    handlers[opcode](self, args)
  File "D:\home\Zope-3.2.1\src\zope\tal\talinterpreter.py", line 838, in 
do_loop_tal
    iterator = self.engine.setRepeat(name, expr)
  File "D:\home\Zope-3.2.1\src\zope\tales\tales.py", line 682, in setRepeat
    expr = self.evaluate(expr)
  File "D:\home\Zope-3.2.1\src\zope\tales\tales.py", line 696, in evaluate
    return expression(self)
   - d:\home\riccardo\projects\SrSite\lib\python\srlabs\browser\skin\template.pt
   - Line 22, Column 12
   - Expression: <PathExpr standard:u'context/@@view_get_menu/zmi_actions'>
   - Names:
      {'args': (),
       'container': <zope.app.folder.folder.Folder object at 0x03227DF0>,
       'context': <zope.app.folder.folder.Folder object at 0x03227DF0>,
       'default': <object object at 0x0099C548>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <zope.publisher.browser.BrowserRequest instance 
URL=http://metropolis/index.html>,
       'template': <zope.app.zptpage.zptpage.ZPTPage object at 0x038F9DF0>,
       'usage': <zope.pagetemplate.pagetemplate.TemplateUsage object at 
0x03AD1830>}
  File "D:\home\Zope-3.2.1\src\zope\tales\expressions.py", line 205, in __call__
    return self._eval(econtext)
  File "D:\home\Zope-3.2.1\src\zope\tales\expressions.py", line 192, in _eval
    ob = self._subexprs[-1](econtext)
  File "D:\home\Zope-3.2.1\src\zope\tales\expressions.py", line 124, in _eval
    ob = self._traverser(ob, element, econtext)
  File "D:\home\Zope-3.2.1\src\zope\app\pagetemplate\engine.py", line 72, in 
trustedZopeTraverser
    request=getattr(econtext, 'request', None))
  File "D:\home\Zope-3.2.1\src\zope\app\traversing\adapters.py", line 124, in 
traverse
    curr = traversePathElement(curr, name, path, request=request)
  File "D:\home\Zope-3.2.1\src\zope\app\traversing\adapters.py", line 179, in 
traversePathElement
    return traversable.traverse(nm, further_path)
   - __traceback_info__: (<zope.app.publisher.browser.viewmeta.MenuAccessView 
object at 0x039DEE10>, 'zmi_actions')
  File "D:\home\Zope-3.2.1\src\zope\app\traversing\adapters.py", line 58, in 
traverse
    return subject[name]
   - __traceback_info__: (<zope.app.publisher.browser.viewmeta.MenuAccessView 
object at 0x039DEE10>, 'zmi_actions', [])
  File "D:\home\Zope-3.2.1\src\zope\app\publisher\browser\menu.py", line 193, 
in __getitem__
    return getMenu(menuId, self.context, self.request)
  File "D:\home\Zope-3.2.1\src\zope\app\publisher\browser\menu.py", line 177, 
in getMenu
    return menu.getMenuItems(object, request)
  File "D:\home\Zope-3.2.1\src\zope\app\publisher\browser\menu.py", line 54, in 
getMenuItems
    if item.available():
  File "D:\home\Zope-3.2.1\src\zope\app\publisher\browser\menu.py", line 132, 
in available
    modules = sys.modules,
  File "D:\home\Zope-3.2.1\src\zope\tales\expressions.py", line 268, in __call__
    return int(not econtext.evaluateBoolean(self._c))
  File "D:\home\Zope-3.2.1\src\zope\tales\tales.py", line 701, in 
evaluateBoolean
    return not not self.evaluate(expr)
  File "D:\home\Zope-3.2.1\src\zope\tales\tales.py", line 696, in evaluate
    return expression(self)
   - Expression: <PathExpr standard:u'context/@@principalLastTransactionIsUndo'>
   - Names:
      {'context': <zope.app.folder.folder.Folder object at 0x03227DF0>,
       'default': <object object at 0x0099C548>,
       'loop': {},
       'nothing': None,
       'repeat': {},
       'request': <zope.publisher.browser.BrowserRequest instance 
URL=http://metropolis/index.html>}
  File "D:\home\Zope-3.2.1\src\zope\tales\expressions.py", line 205, in __call__
    return self._eval(econtext)
  File "D:\home\Zope-3.2.1\src\zope\tales\expressions.py", line 199, in _eval
    return ob()
  File "D:\home\Zope-3.2.1\src\zope\app\publisher\browser\viewmeta.py", line 
435, in __call__
    return meth(*a, **k)
  File "D:\home\Zope-3.2.1\src\zope\app\undo\browser.py", line 34, in 
principalLastTransactionIsUndo
    last=1)
  File "D:\home\Zope-3.2.1\src\zope\app\undo\__init__.py", line 117, in 
getPrincipalTransactions
    return self._getUndoInfo(context, principal, first, last)
  File "D:\home\Zope-3.2.1\src\zope\app\undo\__init__.py", line 136, in 
_getUndoInfo
    specification.update({'user_name': path + ' ' + principal.id})
ForbiddenAttribute: ('id', Principal(u'ldap.tonon'))


------------------------------------------------------------------------

_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to