Предоставьте анонимный доступ к конкретному URL/действию в Plone
Вопрос
Я использую Plone 3.2.3 и установил HumaineMailman так что пользователи на веб -сайте могут подписаться и отказаться от подписки от наших различных почтовых списков. HumaineMailman работает очень просто. Существует специальный URL/действие, которое дает вам простой текстовый список всех адресов электронной почты, которые подписаны в списке. Например:
http://www.example.org/mailman_autolist_update?list=mylist@example.org&password=secret
Вы должны просто провести этот URL и подать список простого текста в Sync_members Mailman. Легкий.
Проблема в том, что Plone не позволяет мне получить доступ к этому URL анонимно. Когда я вошел в систему в качестве администратора, я могу получить доступ к URL-адресу в своем браузере и увидеть список адресов электронной почты. Но когда я не вошел в систему (и при получении этого URL -адреса с помощью WGET), то PLONE перенаправляет меня на страницу входа в систему.
Как сказать Плону, что я хочу разрешить анонимный доступ к этому URL/действию? Само действие (в коде) определено в продуктах/HumaineMailman/Skins/mailman_autolist_update.py.
Заранее спасибо!
Решение 3
HumaineMailman нуждается в управлении докладами. Это слишком много, чтобы дать анонимному, поэтому ответ Lennarts не решил его для меня. Вместо этого я отредактировал HumaineMailman и переделал соответствующие вызовы функций как публичные. Это небольшой риск безопасности, хотя. Мой Plone стоит за прокси -сервером Apache, поэтому я компенсировал только доступ к членам члена Localhost (где также работает скрипт синхронизации WGET и сам почтальон).
Другие советы
Есть несколько способов устранения этого без апаше или повторного объединения безопасности (что тоже заставит меня нервничать)
http://www.example.org:8080/mailman_autolist_update?list=mylist@example.org&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/mailman_autolist_update? List=mylist@example.org&password=secret, который может или не может быть поддержан в зависимости от вашего клиента. либеральный
В качестве альтернативы, если этот код запускается в (сценарии) Python, вы можете добавить файл метаданных (myscript.py.метаданные) и дайте этому сценарию разрешение Manager.ie
[default]
title = Do something useful in the c/py that requires elevated privs
proxy = Manager
Выясните, какое разрешение защищает эту страницу, и дайте это разрешение на анонимную роль в корне Plone.