Предоставить анонимный доступ к определенному URL/действию в Plone

Я использую Plone 3.2.3 и установил HumaineMailman, чтобы пользователи веб-сайт может подписаться и отписаться от наших различных списков рассылки. HumaineMailman работает очень просто. Существует специальный URL/действие, которое дает вам простой текстовый список всех адресов электронной почты, которые подписаны на список. Например:

http://www.example.org/[email protected]&password=secret

Вы должны просто получить этот URL-адрес и передать список простого текста в sync_members Mailman. Легкий.

Проблема в том, что Plone не позволяет мне получить анонимный доступ к этому URL. Когда я вхожу в систему как администратор, я могу получить доступ к URL-адресу в своем браузере и просмотреть список адресов электронной почты. Но когда я не вошел в систему (и когда получаю этот URL-адрес с помощью wget), Plone перенаправляет меня на страницу входа.

Как сообщить plone, что я хочу разрешить анонимный доступ к этому URL/действию? Само действие (в коде) определяется в Products/HumaineMailman/skins/mailman_autolist_update.py.

Заранее спасибо!


person Sander Marechal    schedule 24.08.2009    source источник


Ответы (3)


Есть несколько способов решить эту проблему без apache или повторного объявления безопасности (что тоже заставило бы меня нервничать)

http://www.example.org:8080/[email protected]&password=secret&__ac_name=**USERNAME**&__ac_password=**PASSWORD**&pwd_empty=0&cookies_enabled=1&js_enabled=0&form.submitted=1"

Я часто использую этот прием в сценариях, когда специальный пользователь выполняет только «услуги». Существует также трюк HTTP Auth, который выглядит как http://**USERNAME:PASSWORD@**www.example.org/[email protected]&password=secret, который может поддерживаться или не поддерживаться в зависимости от вашего клиента. библиотека

В качестве альтернативы, если этот код выполняется в (сценарии) Python, вы можете добавить файл метаданных (myScript.py.метаданные) и предоставить этому сценарию прокси-разрешение Manager.e.e.

[default]
title = Do something useful in the c/py that requires elevated privs
proxy = Manager
person eleddy    schedule 12.09.2009

Выясните, какое разрешение защищает эту страницу, и дайте это разрешение роли Anonymous в корневом каталоге Plone.

person Lennart Regebro    schedule 24.08.2009
comment
Это не решило это для меня, но указало мне правильное направление. Спасибо. - person Sander Marechal; 24.08.2009

HumaineMailman нуждается в разрешениях ManagePortal. Это слишком много, чтобы давать Anonymous, поэтому ответ Леннарта не решил эту проблему для меня. Вместо этого я отредактировал HumaineMailman и повторно объявил соответствующие вызовы функций общедоступными. Однако это небольшой риск для безопасности. Мой Plone находится за прокси-сервером Apache, поэтому я компенсировал это тем, что разрешил доступ к списку участников только с локального хоста (где также запущен скрипт синхронизации wget и сам почтальон).

person Sander Marechal    schedule 24.08.2009