0

我正在运行 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 中定义。

提前致谢!

4

3 回答 3

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 取决于您的客户端可能支持也可能不支持库。

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

[default]
title = Do something useful in the c/py that requires elevated privs
proxy = Manager
于 2009-09-12T00:36:39.820 回答
1

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

于 2009-08-24T12:35:37.053 回答
0

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

于 2009-08-24T15:03:49.103 回答