2013-05-08 4 views
1

Я пытаюсь разрешить Anonymous пользователей для поиска plone Members. Я получил его, чтобы настроить параметр «Анонимная роль» для разрешения «Управление пользователями», что, конечно, не подходит. Есть ли более конкретные разрешения на это? "Список пользователей портала" не работает. Мне нужно разрешить анонимный поиск, потому что наши пользователи интрасети обычно не аутентифицируются. Наши участники plone поступают из LDAP с настраиваемыми полями (телефон, местоположение, регистр). Это было сделано с помощью plone.app.ldap. Я использую Plone-4,0 и PlonePAS-4.0.1-py2.6Разрешить анонимным пользователям искать plone Members

Это то, что вызывает некоторое исключение и открыть 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 []; 

If Я установил листинг_allowed равным False, шаблон визуализируется нормально, информируя пользователя о том, что он не может выполнить поиск, потому что у него нет разрешения. Но если список_allowed равен True, он отправляется на поискUsersByRequest, возвращающий login_form.

Уже посмотрите на PlonePAS configure.zcml, чтобы увидеть разрешения, но там нет ничего плохого. Пытались изменить разрешение на zope2.Public и zope.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

Спасибо, Ванхем. На самом деле я делал что-то неправильно. Я вызывал ** getMemberData() ** внутри моего шаблона, и этот метод защищен. Это вызвало запрос аутентификации. Правильный способ использования - это getMemberInfo(), который является общедоступным. Но мне это не помогло, потому что он возвращает словарь основных свойств, и мне нужны свойства LDAP. В конце концов я последовал твоему совету и реализовал свое собственное мнение. Сейчас все работает. Благодарю. –

Смежные вопросы

 Смежные вопросы