Python 授予对Plone中特定url/操作的匿名访问权

Python 授予对Plone中特定url/操作的匿名访问权,python,plone,zope,mailman,Python,Plone,Zope,Mailman,我正在运行Plone 3.2.3,我已经安装了,这样网站上的用户就可以订阅和取消订阅我们的各种邮件列表。Humainman的工作非常简单。有一个特殊的URL/操作,为您提供一个纯文本列表,其中列出了列表中订阅的所有电子邮件地址。例如: 您只需将该URL设置为wget,然后将纯文本列表提供给邮件管理员的sync_成员。简单 问题是Plone不允许我匿名访问该URL。当我以管理员身份登录时,我可以访问浏览器中的URL并查看电子邮件地址列表。但当我没有登录时(以及使用wget检索URL时),Plon

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

您只需将该URL设置为wget,然后将纯文本列表提供给邮件管理员的sync_成员。简单

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

我如何告诉plone我希望允许匿名访问该URL/操作?操作本身(在代码中)在Products/HumaineMailman/skins/mailman\u autolist\u update.py中定义


提前谢谢

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

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

HumaineMailman需要ManagePortal权限。这些都太多了,所以莱纳特的回答并没有帮我解决。相反,我编辑了HumaineMailman,并将相应的函数调用重新声明为public。但这是一个轻微的安全风险。我的Plone支持Apache代理,因此我只允许从localhost访问成员列表(wget同步脚本和mailman本身也在运行)。

HumaineMailman需要ManagePortal权限。这些都太多了,所以莱纳特的回答并没有帮我解决。相反,我编辑了HumaineMailman,并将相应的函数调用重新声明为public。但这是一个轻微的安全风险。我的Plone支持Apache代理,因此我只允许从localhost访问成员列表(wget同步脚本和mailman本身也在运行)。

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

我经常在脚本中使用这个技巧,特殊用户只做“服务”。还有一个HTTP身份验证技巧,看起来像HTTP://**USERNAME:PASSWORD@**www.example.org/mailman\u autolist\u update?list=mylist@example.org&password=secret,根据客户端库的不同,可能支持也可能不支持该密码

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

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

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

我经常在脚本中使用这个技巧,特殊用户只做“服务”。还有一个HTTP身份验证技巧,看起来像HTTP://**USERNAME:PASSWORD@**www.example.org/mailman\u autolist\u update?list=mylist@example.org&password=secret,根据客户端库的不同,可能支持也可能不支持该密码

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

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

它并没有为我解决问题,但它确实为我指明了正确的方向。谢谢。它没有帮我解决问题,但它确实为我指明了正确的方向。谢谢