2013-05-08 24 views
1

我试图允许匿名用户搜索plone会员。我将它设置为可以将匿名角色设置为拥有“管理用户”权限,当然这不合适。 有更详细的许可吗?“列表门户成员”不起作用。我需要允许匿名搜索,因为我们的Intranet用户通常不会进行身份验证。我们的plone成员来自LDAP(自定义字段)(电话,位置,注册)。这是用plone.app.ldap完成的。我使用的Plone-4.0和PlonePAS-4.0.1-py2.6允许匿名用户搜索plone会员

这是什么触发了一些异常,并打开login_form为匿名用户

member_search_results.pt

<metal:main fill-slot="main" 
     tal:define="search_view here/@@pas_search; 
        listing_allowed python: checkPermission('List portal members', here);  
        results python:listing_allowed and search_view.searchUsersByRequest(request, sort_by='fullname') or []; 

如果我将listing_allowed设置为False,模板正常呈现,通知用户它无法执行搜索,因为它没有权限。但是,如果listing_allowed为True,它将返回searchUsersByRequest返回login_form。

已经看着PlonePAS configure.zcml来查看权限,但这里也没有错。试图将权限更改zope2.Publiczope.Public,但没有成功

<browser:page 
     for="*" 
     name="pas_search" 
     class=".search.PASSearchView" 
     permission="zope2.View" 
     allowed_interface="Products.PlonePAS.interfaces.browser.IPASSearchView"/> 

任何帮助表示赞赏。 谢谢!

回答

0

使用https://pypi.python.org/pypi/Products.remember/1.9.2可能会更好,因为它为所有成员提供了应该可搜索的内容对象。

否则,您可能必须实现自己的视图,以执行搜索并绕过有关用户的安全考虑事项。

+0

谢谢vangheem。其实我做错了什么。我在模板中调用了一个** getMemberData()**,并且此方法受到保护。这是触发验证请求。正确的使用方法是公开的getMemberInfo()。但它没有帮助我,因为它返回一个基本属性的字典,我需要LDAP属性。毕竟,我遵循了你的建议并实施了我自己的观点。现在一切正常。谢谢。 – 2013-05-14 13:09:22

相关问题