2009-08-24 56 views
0

我正在運行Plone 3.2.3,並且我安裝了HumaineMailman,以便網站上的用戶可以訂閱我們的各種郵件列表並取消訂閱。 HumaineMailman的作品非常簡單。有一個特殊的URL /操作,爲您提供列表中訂閱的所有電子郵件地址的純文本列表。例如:授予匿名訪問Plone中的特定網址/操作

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

你應該簡單地wget的那個URL和飼料的純文本列表轉換成郵差的sync_members。簡單。

問題是,Plone不允許我匿名訪問該URL。當我以管理員身份登錄時,我可以在瀏覽器中訪問URL並查看電子郵件地址列表。但是,當我沒有登錄(並使用wget檢索該URL時),然後Plone將我重定向到登錄頁面。

如何告訴plone我想允許匿名訪問該URL /操作?操作本身(代碼中)在Products/HumaineMailman/skins/mailman_autolist_update.py中定義。

在此先感謝!

回答

0

HumaineMailman需要ManagePortal權限。那些對Anonymous來說太多了,所以Lennarts的回答並沒有爲我解決。相反,我編輯了HumaineMailman並將相應的函數調用重新聲明爲public。儘管這是一個輕微的安全風險。我的Plone是在Apache代理的後面,所以我通過只允許從本地主機(其中wget同步腳本和郵件本身也在其中運行)訪問成員列表來補償。

1

找出保護該頁面的權限,並將該權限授予Plone根目錄中的匿名角色。

+0

它並沒有爲我解決,但它確實指向了正確的方向。謝謝。 – 2009-08-24 15:00:02

2

有解決這個問題的幾種方法,而不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驗證技巧,看起來像http:// ** USERNAME:[email protected]**www.example.org/mailman_autolist_update?[email protected] & password = secret可能會或可能不會被支持,具體取決於你的客戶端庫。或者,如果該代碼在(腳本)Python中運行,則可以添加元數據文件(myScript.py。元數據),併爲該腳本提供Manager.i.e的代理權限。

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