LDAPUserFolder --- AttributeError: getMemberInfo

Jean Jordaan <[email protected]>
Newsgroups gmane.comp.web.zope.plone.user
Message-ID <CAJqnznDi82y4XTNS2r296w=p2221gaED6E+37EgCKLEh3tW==g@mail.gmail.com>
Hi all

A friend of mine is struggling with Plone and LDAP. I'm not so familiar with
the domain, so I'm forwarding his message to the list.

At first glance, `membership` is expected to be a Plone `MembershipTool`
implementation, and evidently it isn't. Possibly that LDAPUserFolder isn't
implementing the complete `MembershipTool` interface, or it isn't being
set up successfully?

---------- Forwarded message ----------

I have set up a CAS for unified login credentials, and a "corporate"
addressbook. Therefore I have added LDAP functionality to Plone (using
plone.app.ldap). [...] LDAPUserFolder CMF Tools 2.27 seems to be the main
culprit: As soon as I activate this product, things go haywire - and the header
disappears.

"""
2015-02-23T09:00:50 ERROR plone.app.viewletmanager rendering of
plone.portaltop in plone.header fails: getMemberInfo
Traceback (most recent call last):
  File "/usr/local/plone/buildout-cache/eggs/plone.app.viewletmanager-2.0.5-py2.7.egg/plone/app/viewletmanager/manager.py",
line 105, in render
    html.append(viewlet.render())
  File "/usr/local/plone/buildout-cache/eggs/zope.browserpage-3.12.2-py2.7.egg/zope/browserpage/simpleviewclass.py",
line 44, in __call__
    return self.index(*args, **kw)
  File "/usr/local/plone/buildout-cache/eggs/Zope2-2.13.22-py2.7.egg/Products/Five/browser/pagetemplatefile.py",
line 125, in __call__
    return self.im_func(im_self, *args, **kw)
  File "/usr/local/plone/buildout-cache/eggs/Zope2-2.13.22-py2.7.egg/Products/Five/browser/pagetemplatefile.py",
line 59, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  File "/usr/local/plone/buildout-cache/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py",
line 132, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/usr/local/plone/buildout-cache/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py",
line 240, in __call__
    interpreter()
  File "/usr/local/plone/buildout-cache/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py",
line 271, in __call__
    self.interpret(self.program)
  File "/usr/local/plone/buildout-cache/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py",
line 343, in interpret
    handlers[opcode](self, args)
  File "/usr/local/plone/buildout-cache/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py",
line 531, in do_optTag_tal
    self.no_tag(stuff[-2], stuff[-1])
  File "/usr/local/plone/buildout-cache/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py",
line 513, in no_tag
    self.interpret(program)
  File "/usr/local/plone/buildout-cache/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py",
line 343, in interpret
    handlers[opcode](self, args)
  File "/usr/local/plone/buildout-cache/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py",
line 742, in do_insertStructure_tal
    structure = self.engine.evaluateStructure(expr)
  File "/usr/local/plone/buildout-cache/eggs/Zope2-2.13.22-py2.7.egg/Products/PageTemplates/Expressions.py",
line 218, in evaluateStructure
    text = super(ZopeContext, self).evaluateStructure(expr)
  File "/usr/local/plone/buildout-cache/eggs/zope.tales-3.5.3-py2.7.egg/zope/tales/tales.py",
line 696, in evaluate
    return expression(self)
  File "/usr/local/plone/buildout-cache/eggs/zope.contentprovider-3.7.2-py2.7.egg/zope/contentprovider/tales.py",
line 77, in __call__
    provider.update()
  File "/usr/local/plone/buildout-cache/eggs/zope.viewlet-3.7.2-py2.7.egg/zope/viewlet/manager.py",
line 112, in update
    self._updateViewlets()
  File "/usr/local/plone/buildout-cache/eggs/zope.viewlet-3.7.2-py2.7.egg/zope/viewlet/manager.py",
line 118, in _updateViewlets
    viewlet.update()
  File "/usr/local/plone/buildout-cache/eggs/plone.app.layout-2.3.11-py2.7.egg/plone/app/layout/viewlets/common.py",
line 247, in update
    member_info = membership.getMemberInfo(userid)
AttributeError: getMemberInfo
"""

(Note: I have been using the very same CAS for other applications, including
mail, without and issues.)

Even without LDAPUserFolder CMF Tools 2.27, I do not seem to be able to extract
properties from the OpenLDAP directory, such as full names (Plone property:
fullname, LDAP name: cn), which is really quite trivial.

Seems I am barking up the wrong tree somewhere?

-- 
jean                                              . .. .... //\\\oo///\\

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.