【问题标题】:Allow Anonymous users to search for plone Members允许匿名用户搜索克隆成员
【发布时间】:2013-05-08 21:00:47
【问题描述】:

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

这是触发一些异常并为匿名用户打开 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"/>

感谢任何帮助。 谢谢!

【问题讨论】:

    标签: plone


    【解决方案1】:

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

    否则,您可能必须实现自己的视图来执行搜索并绕过关于用户的安全注意事项。

    【讨论】:

    • 感谢 vangheem。其实我做错了什么。我在模板中调用了 getMemberData(),并且此方法受到保护。这是触发身份验证请求。正确使用的方法是公开的 getMemberInfo()。但它没有帮助我,因为它返回一个基本属性的字典,我需要 LDAP 属性。毕竟,我听从了您的建议并实施了自己的观点。现在一切正常。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 2014-09-22
    • 2012-12-20
    相关资源
    最近更新 更多