代码之家  ›  专栏  ›  技术社区  ›  Sander Marechal

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

  •  0
  • Sander Marechal  · 技术社区  · 16 年前

    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/HumaneMailman/skins/mailman_autolist_update.py中定义。

    提前感谢!

    3 回复  |  直到 16 年前
        1
  •  2
  •   eleddy    16 年前

    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"
    

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

    [default]
    title = Do something useful in the c/py that requires elevated privs
    proxy = Manager
    
        2
  •  1
  •   Lennart Regebro    16 年前

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

        3
  •  0
  •   Sander Marechal    16 年前

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