授予对Plone中特定网址/操作的匿名访问权限

时间:2009-08-24 11:24:09

标签: python plone zope mailman

我正在运行Plone 3.2.3并且我安装了HumaineMailman,以便网站上的用户可以订阅和取消订阅我们的各种邮件列表。 HumaineMailman的工作非常简单。有一个特殊的URL /操作,为您提供列表中订阅的所有电子邮件地址的纯文本列表。例如:

http://www.example.org/mailman_autolist_update?list=mylist@example.org&password=secret

您应该只是忘记该URL并将纯文本列表提供给Mailman的sync_members。容易。

问题是Plone不允许我匿名访问该URL。当我以管理员身份登录时,我可以在浏览器中访问该URL并查看电子邮件地址列表。但是当我没有登录时(以及使用wget检索该URL时),Plone会将我重定向到登录页面。

如何告诉plone我想允许匿名访问该URL /操作?动作本身(代码中)在Products / HumaineMailman / skins / mailman_autolist_update.py中定义。

提前致谢!

3 个答案:

答案 0 :(得分:2)

有几种方法可以解决这个问题而不用apache或重新声明安全性(这也会让我感到紧张)

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,可能支持也可能不支持,具体取决于你的客户端lib。

或者,如果该代码在(脚本)Python中运行,那么您可以添加元数据文件(myScript.py。元数据)并为该脚本提供Manager.ie的代理权限

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

答案 1 :(得分:1)

找出保护该页面的权限,并将该权限授予Plone根目录中的匿名角色。

答案 2 :(得分:0)

HumaineMailman需要ManagePortal权限。那些给予匿名的太多了,所以Lennarts的回答并没有为我解决。相反,我编辑了HumaineMailman并将相应的函数调用重新声明为public。但这有轻微的安全风险。我的Plone是Apache代理的后面所以我补偿只允许从localhost访问成员列表(wget同步脚本和mailman本身也在运行)。