2009-08-24 5 views
0

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

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

вы должны просто Wget, что URL и кормить простой список текста в sync_members MailMan в. Легко.

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

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

Заранее благодарен!

ответ

0

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

1

Укажите, какое разрешение защищает эту страницу, и дайте это разрешение анонимной роли в корне Plone.

+0

Это не решило его для меня, но он указал мне в правильном направлении. Благодарю. –

2

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

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: [email protected]**www.example.org/mailman_autolist_update? [email protected] & пароль = секрет, который может поддерживаться или не поддерживаться в зависимости от ваш клиентский lib.

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

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